[tor-commits] [tor/maint-0.2.8] Don't call the system toupper or tolower.

nickm at torproject.org nickm at torproject.org
Wed Apr 6 03:56:39 UTC 2016


commit d7a0382ba337bd1cbd7568a607d85e303012b22c
Author: Nick Mathewson <nickm at 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





More information about the tor-commits mailing list