]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix parsing of hex/octal escapes in strings (#42)
authorCraig McQueen <work@craig.mcqueen.id.au>
Fri, 20 Aug 2021 07:57:18 +0000 (17:57 +1000)
committerGitHub <noreply@github.com>
Fri, 20 Aug 2021 07:57:18 +0000 (08:57 +0100)
src/if-options.c

index 8ba6635da387d073235a4c04cfb8a9e0c8291cfb..dd70c80656b221f16466966dc42b3ee1354bd3c7 100644 (file)
@@ -321,9 +321,10 @@ parse_str(char *sbuf, size_t slen, const char *str, int flags)
                                                break;
                                        c[i] = *str++;
                                }
-                               if (c[1] != '\0' && sbuf) {
+                               if (c[1] != '\0') {
                                        c[2] = '\0';
-                                       *sbuf++ = (char)strtol(c, NULL, 16);
+                                       if (sbuf)
+                                               *sbuf++ = (char)strtol(c, NULL, 16);
                                } else
                                        l--;
                                break;
@@ -335,11 +336,12 @@ parse_str(char *sbuf, size_t slen, const char *str, int flags)
                                                break;
                                        c[i] = *str++;
                                }
-                               if (c[2] != '\0' && sbuf) {
+                               if (c[2] != '\0') {
                                        i = (int)strtol(c, NULL, 8);
                                        if (i > 255)
                                                i = 255;
-                                       *sbuf ++= (char)i;
+                                       if (sbuf)
+                                               *sbuf++ = (char)i;
                                } else
                                        l--;
                                break;