commit d7a0382ba337bd1cbd7568a607d85e303012b22c Author: Nick Mathewson nickm@torproject.org Date: Tue Apr 5 23:22:28 2016 -0400
Don't call the system toupper or tolower.
Yes, we could cast to unsigned char first, but it's probably safest to just use our own (in test_util), or remove bad-idea features that we don't use (in readpassphrase.c).
Fixes 18728. --- changes/bug18728 | 4 ++++ src/ext/readpassphrase.c | 2 ++ src/ext/tor_readpassphrase.h | 2 ++ src/test/test_util.c | 3 ++- 4 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/changes/bug18728 b/changes/bug18728 new file mode 100644 index 0000000..e181c17 --- /dev/null +++ b/changes/bug18728 @@ -0,0 +1,4 @@ + o Minor bugfixes (build): + - Resolve warnings when building on systems that are concerned with + signed char. Fixes bug 18728; bugfix on 0.2.7.2-alpha and + 0.2.6.1-alpha. diff --git a/src/ext/readpassphrase.c b/src/ext/readpassphrase.c index ab71935..e0df05d 100644 --- a/src/ext/readpassphrase.c +++ b/src/ext/readpassphrase.c @@ -142,6 +142,7 @@ restart: p = buf; while ((nr = read(input, &ch, 1)) == 1 && ch != '\n' && ch != '\r') { if (p < end) { +#if 0 if ((flags & RPP_SEVENBIT)) ch &= 0x7f; if (isalpha(ch)) { @@ -150,6 +151,7 @@ restart: if ((flags & RPP_FORCEUPPER)) ch = (char)toupper(ch); } +#endif *p++ = ch; } } diff --git a/src/ext/tor_readpassphrase.h b/src/ext/tor_readpassphrase.h index 83ae1f2..64f5668 100644 --- a/src/ext/tor_readpassphrase.h +++ b/src/ext/tor_readpassphrase.h @@ -32,9 +32,11 @@ #define RPP_ECHO_OFF 0x00 /* Turn off echo (default). */ #define RPP_ECHO_ON 0x01 /* Leave echo on. */ #define RPP_REQUIRE_TTY 0x02 /* Fail if there is no tty. */ +#if 0 #define RPP_FORCELOWER 0x04 /* Force input to lower case. */ #define RPP_FORCEUPPER 0x08 /* Force input to upper case. */ #define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */ +#endif #define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */
char * readpassphrase(const char *, char *, size_t, int); diff --git a/src/test/test_util.c b/src/test/test_util.c index 7d43b81..21ff757 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -2297,7 +2297,8 @@ test_util_sscanf(void *arg) }
#define tt_char_op(a,op,b) tt_assert_op_type(a,op,b,char,"%c") -#define tt_ci_char_op(a,op,b) tt_char_op(tolower(a),op,tolower(b)) +#define tt_ci_char_op(a,op,b) \ + tt_char_op(TOR_TOLOWER((int)a),op,TOR_TOLOWER((int)b))
#ifndef HAVE_STRNLEN static size_t