X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Flascar-el-usb%2Fprotocol.c;h=dcd83e8e035421c1fc34e0d0afd24d76d17ecc8b;hb=b65adcedb89f69c7f52a6e98e73a3513c2648e95;hp=44f4be82f350cca5d1e33b4d03c5c5fef8cb3a20;hpb=fc69eecca07782580d391a385d62321bbfcb038d;p=libsigrok.git diff --git a/src/hardware/lascar-el-usb/protocol.c b/src/hardware/lascar-el-usb/protocol.c index 44f4be82..dcd83e8e 100644 --- a/src/hardware/lascar-el-usb/protocol.c +++ b/src/hardware/lascar-el-usb/protocol.c @@ -412,10 +412,13 @@ static void lascar_el_usb_dispatch(struct sr_dev_inst *sdi, unsigned char *buf, packet.type = SR_DF_ANALOG; packet.payload = &analog; analog.meaning->mqflags = 0; - if (!(temp = g_try_malloc(sizeof(float) * samples))) - break; - if (!(rh = g_try_malloc(sizeof(float) * samples))) + temp = g_try_malloc(sizeof(float) * samples); + rh = g_try_malloc(sizeof(float) * samples); + if (!temp || !rh) { + g_free(temp); + g_free(rh); break; + } for (i = 0, j = 0; i < samples; i++) { /* Both Celsius and Fahrenheit stored at base -40. */ if (devc->temp_unit == 0)