From: Uwe Hermann Date: Sat, 16 Apr 2011 14:04:32 +0000 (+0200) Subject: ASIX Sigma: Improve error handling a bit. X-Git-Tag: libsigrok-0.1.0~282 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=12ad53f5a6390e95ea0451ab3bd2c18574294aa3 ASIX Sigma: Improve error handling a bit. --- diff --git a/hardware/asix-sigma/asix-sigma.c b/hardware/asix-sigma/asix-sigma.c index 598d0b06..71116dbe 100644 --- a/hardware/asix-sigma/asix-sigma.c +++ b/hardware/asix-sigma/asix-sigma.c @@ -333,11 +333,14 @@ static int bin2bitbang(const char *filename, if (!(compressed_buf = g_try_malloc(file_size))) { sr_err("asix: %s: compressed_buf malloc failed", __func__); + fclose(f); return SR_ERR_MALLOC; } if (!(firmware = g_try_malloc(buffer_size))) { sr_err("asix: %s: firmware malloc failed", __func__); + fclose(f); + g_free(compressed_buf); return SR_ERR_MALLOC; } @@ -364,6 +367,8 @@ static int bin2bitbang(const char *filename, *buf = p = (unsigned char *)g_try_malloc(*buf_size); if (!p) { sr_err("asix: %s: buf/p malloc failed", __func__); + g_free(compressed_buf); + g_free(firmware); return SR_ERR_MALLOC; } @@ -432,7 +437,7 @@ static int hw_init(const char *deviceinfo) return 1; free: - free(sigma); + g_free(sigma); return 0; }