From: Daniel Thompson Date: Fri, 4 Oct 2013 07:34:05 +0000 (+0100) Subject: agilent-dmm: Fix SEGV during incomplete reply from meter. X-Git-Tag: libsigrok-0.2.2~50 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=fbf07e020995b2d50ef337a2c629b2b8997dd047 agilent-dmm: Fix SEGV during incomplete reply from meter. If buf contains exactly the string "Agilent Technologies" (for example if there are bugs in the timeout logic or serial driver causing the reply from the meter to be abridged) then this code will SEGV. This is because tokens[1] is NULL but only tokens[2] and tokens[3] (both of which are undefined) are NULL checked. Can be trivially corrected by NULL checking tokens[1] as well. Signed-off-by: Daniel Thompson --- diff --git a/hardware/agilent-dmm/api.c b/hardware/agilent-dmm/api.c index 34fa92ad..4a1274d6 100644 --- a/hardware/agilent-dmm/api.c +++ b/hardware/agilent-dmm/api.c @@ -129,7 +129,7 @@ static GSList *scan(GSList *options) tokens = g_strsplit(buf, ",", 4); if (!strcmp("Agilent Technologies", tokens[0]) - && tokens[2] && tokens[3]) { + && tokens[1] && tokens[2] && tokens[3]) { for (i = 0; supported_agdmm[i].model; i++) { if (strcmp(supported_agdmm[i].modelname, tokens[1])) continue;