mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-23 22:47:12 +01:00
Merge remote-tracking branch 'asn-mytor/bug5558_take2'
This commit is contained in:
commit
b8e582255e
3 changed files with 9 additions and 2 deletions
3
changes/bug5558
Normal file
3
changes/bug5558
Normal file
|
@ -0,0 +1,3 @@
|
|||
o Minor bugfixes
|
||||
- Enforce correct return behavior of tor_vsscanf(), when the '%%'
|
||||
pattern is used. Fixes bug 5558.
|
|
@ -2773,7 +2773,7 @@ tor_vsscanf(const char *buf, const char *pattern, va_list ap)
|
|||
++n_matched;
|
||||
} else if (*pattern == '%') {
|
||||
if (*buf != '%')
|
||||
return -1;
|
||||
return n_matched;
|
||||
++buf;
|
||||
++pattern;
|
||||
} else {
|
||||
|
|
|
@ -1384,7 +1384,6 @@ test_util_sscanf(void)
|
|||
test_eq(-1, tor_sscanf("wrong", "%5c", s1)); /* %c cannot have a number. */
|
||||
test_eq(-1, tor_sscanf("hello", "%s", s1)); /* %s needs a number. */
|
||||
test_eq(-1, tor_sscanf("prettylongstring", "%999999s", s1));
|
||||
test_eq(-1, tor_sscanf("We're the 99 monkeys", "We're the 99%%"));
|
||||
#if 0
|
||||
/* GCC thinks these two are illegal. */
|
||||
test_eq(-1, tor_sscanf("prettylongstring", "%0s", s1));
|
||||
|
@ -1468,6 +1467,11 @@ test_util_sscanf(void)
|
|||
/* Literal '%' (ie. '%%') */
|
||||
test_eq(1, tor_sscanf("99% fresh", "%3u%% fresh", &u1));
|
||||
test_eq(99, u1);
|
||||
test_eq(0, tor_sscanf("99 fresh", "%% %3u %s", &u1, s1));
|
||||
test_eq(1, tor_sscanf("99 fresh", "%3u%% %s", &u1, s1));
|
||||
test_eq(2, tor_sscanf("99 fresh", "%3u %5s %%", &u1, s1));
|
||||
test_eq(99, u1);
|
||||
test_streq(s1, "fresh");
|
||||
test_eq(1, tor_sscanf("% boo", "%% %3s", s1));
|
||||
test_streq("boo", s1);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue