]> sigrok.org Git - libsigrok.git/commitdiff
agilent-dmm: Fix SEGV during incomplete reply from meter.
authorDaniel Thompson <redacted>
Fri, 4 Oct 2013 07:34:05 +0000 (08:34 +0100)
committerBert Vermeulen <redacted>
Fri, 4 Oct 2013 11:30:49 +0000 (13:30 +0200)
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 <redacted>
hardware/agilent-dmm/api.c

index 34fa92ad507db894c1a96ad3558d170859404b57..4a1274d6d7885abec0284e47545f6a5310117d34 100644 (file)
@@ -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;