X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fhardware%2Flascar-el-usb%2Fprotocol.c;h=801f83b024ad714f5e7a358d9ffcf929812e6199;hb=HEAD;hp=44f4be82f350cca5d1e33b4d03c5c5fef8cb3a20;hpb=3782e57129fa661a773be337c9f548708f593eb0;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)