diff options
author | Werner Koch <[email protected]> | 2016-01-06 07:31:38 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-01-06 07:31:38 +0000 |
commit | 0a00115ee2049ab2357b7a14a51c7da185ffcabd (patch) | |
tree | 8ba811680a3ea2a736a8385534127c7ba5676c57 | |
parent | gpg: Align notes about minimal keysize with actual checks. (diff) | |
download | gnupg-0a00115ee2049ab2357b7a14a51c7da185ffcabd.tar.gz gnupg-0a00115ee2049ab2357b7a14a51c7da185ffcabd.zip |
common: Do not deref vars in tests after a fail().
* common/t-convert.c (test_bin2hex): Turn if conditions into if-else
chains to avoid accessing unchecked data.
(test_bin2hexcolon): Ditto.
* common/t-mapstrings.c (test_map_static_macro_string): Ditto.
* common/t-stringhelp.c (test_percent_escape): Ditto.
(test_make_filename_try): Ditto.
(test_make_absfilename_try): Ditto.
* common/t-timestuff.c (test_timegm): Ditto.
--
Note that these dereference only occur after failed regression tests.
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | common/t-convert.c | 8 | ||||
-rw-r--r-- | common/t-mapstrings.c | 4 | ||||
-rw-r--r-- | common/t-stringhelp.c | 32 | ||||
-rw-r--r-- | common/t-timestuff.c | 35 |
4 files changed, 41 insertions, 38 deletions
diff --git a/common/t-convert.c b/common/t-convert.c index a03c680ad..ad33dff9b 100644 --- a/common/t-convert.c +++ b/common/t-convert.c @@ -232,13 +232,13 @@ test_bin2hex (void) p = bin2hex (stuff, 20, NULL); if (!p) fail (0); - if (strcmp (p, hexstuff)) + else if (strcmp (p, hexstuff)) fail (0); p = bin2hex (stuff, (size_t)(-1), NULL); if (p) fail (0); - if (errno != ENOMEM) + else if (errno != ENOMEM) fail (1); } @@ -264,13 +264,13 @@ test_bin2hexcolon (void) p = bin2hexcolon (stuff, 20, NULL); if (!p) fail (0); - if (strcmp (p, hexstuff)) + else if (strcmp (p, hexstuff)) fail (0); p = bin2hexcolon (stuff, (size_t)(-1), NULL); if (p) fail (0); - if (errno != ENOMEM) + else if (errno != ENOMEM) fail (1); } diff --git a/common/t-mapstrings.c b/common/t-mapstrings.c index 88c6674bf..8f4c6507b 100644 --- a/common/t-mapstrings.c +++ b/common/t-mapstrings.c @@ -68,7 +68,7 @@ test_map_static_macro_string (void) result = map_static_macro_string (tests[testno].string); if (!result) fail (testno); - if (strcmp (result, tests[testno].expected)) + else if (strcmp (result, tests[testno].expected)) fail (testno); if (!tests[testno].lastresult) tests[testno].lastresult = result; @@ -80,7 +80,7 @@ test_map_static_macro_string (void) result = map_static_macro_string (tests[testno].string); if (!result) fail (testno); - if (strcmp (result, tests[testno].expected)) + else if (strcmp (result, tests[testno].expected)) fail (testno); if (result != tests[testno].lastresult) fail (testno); diff --git a/common/t-stringhelp.c b/common/t-stringhelp.c index e97b64a6e..af79cb5cd 100644 --- a/common/t-stringhelp.c +++ b/common/t-stringhelp.c @@ -143,7 +143,7 @@ test_percent_escape (void) result = percent_escape (tests[testno].value, tests[testno].extra); if (!result) fail (testno); - if (strcmp (result, tests[testno].expected)) + else if (strcmp (result, tests[testno].expected)) fail (testno); xfree (result); } @@ -398,13 +398,13 @@ test_make_filename_try (void) out = make_filename_try ("~/foo", "bar", NULL); if (!out) fail (2); - if (home) + else if (home) { if (strlen (out) < homelen + 7) fail (2); - if (strncmp (out, home, homelen)) + else if (strncmp (out, home, homelen)) fail (2); - if (strcmp (out+homelen, "/foo/bar")) + else if (strcmp (out+homelen, "/foo/bar")) fail (2); } else @@ -417,13 +417,13 @@ test_make_filename_try (void) out = make_filename_try ("~", "bar", NULL); if (!out) fail (2); - if (home) + else if (home) { if (strlen (out) < homelen + 3) fail (2); - if (strncmp (out, home, homelen)) + else if (strncmp (out, home, homelen)) fail (2); - if (strcmp (out+homelen, "/bar")) + else if (strcmp (out+homelen, "/bar")) fail (2); } else @@ -445,33 +445,33 @@ test_make_absfilename_try (void) out = make_absfilename_try ("foo", "bar", NULL); if (!out) fail (0); - if (strlen (out) < cwdlen + 7) + else if (strlen (out) < cwdlen + 7) fail (0); - if (strncmp (out, cwd, cwdlen)) + else if (strncmp (out, cwd, cwdlen)) fail (0); - if (strcmp (out+cwdlen, "/foo/bar")) + else if (strcmp (out+cwdlen, "/foo/bar")) fail (0); xfree (out); out = make_absfilename_try ("./foo", NULL); if (!out) fail (1); - if (strlen (out) < cwdlen + 5) + else if (strlen (out) < cwdlen + 5) fail (1); - if (strncmp (out, cwd, cwdlen)) + else if (strncmp (out, cwd, cwdlen)) fail (1); - if (strcmp (out+cwdlen, "/./foo")) + else if (strcmp (out+cwdlen, "/./foo")) fail (1); xfree (out); out = make_absfilename_try (".", NULL); if (!out) fail (2); - if (strlen (out) < cwdlen) + else if (strlen (out) < cwdlen) fail (2); - if (strncmp (out, cwd, cwdlen)) + else if (strncmp (out, cwd, cwdlen)) fail (2); - if (strcmp (out+cwdlen, "")) + else if (strcmp (out+cwdlen, "")) fail (2); xfree (out); diff --git a/common/t-timestuff.c b/common/t-timestuff.c index cb7cd392a..a80aaff59 100644 --- a/common/t-timestuff.c +++ b/common/t-timestuff.c @@ -124,25 +124,28 @@ test_timegm (void) tp = gmtime (&now); if (!tp) fail (tidx); - tbuf = *tp; - tbuf2 = tbuf; + else + { + tbuf = *tp; + tbuf2 = tbuf; #ifdef HAVE_TIMEGM - atime = timegm (&tbuf); + atime = timegm (&tbuf); #else - atime = mktime (&tbuf); + atime = mktime (&tbuf); #endif - if (atime == (time_t)(-1)) - fail (tidx); - if (atime != now) - fail (tidx); - - tp = gmtime (&atime); - if (!tp) - fail (tidx); - if (cmp_time_s (tp, &tbuf)) - fail (tidx); - if (cmp_time_s (tp, &tbuf2)) - fail (tidx); + if (atime == (time_t)(-1)) + fail (tidx); + else if (atime != now) + fail (tidx); + + tp = gmtime (&atime); + if (!tp) + fail (tidx); + else if (cmp_time_s (tp, &tbuf)) + fail (tidx); + else if (cmp_time_s (tp, &tbuf2)) + fail (tidx); + } } } |