[tor-commits] [tor/master] Instead of testing for __GNUC__, use CHECK_SCANF, like CHECK_PRINTF.

nickm at torproject.org nickm at torproject.org
Fri Jun 14 14:52:48 UTC 2013


commit 7f67becf307e383eeda94dc4a7dbf5629436ef8c
Author: dana koch <dsk at google.com>
Date:   Thu Jun 13 22:04:01 2013 +1000

    Instead of testing for __GNUC__, use CHECK_SCANF, like CHECK_PRINTF.
    
    This lets us have the possibility of fine-tuning the check in the tor_sscanf test cases at a later date.
---
 src/common/compat.h |    8 +++++++-
 src/common/util.h   |   12 +++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/common/compat.h b/src/common/compat.h
index 8ab7190..258fc99 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -84,13 +84,19 @@
 
 /* ===== Compiler compatibility */
 
-/* GCC can check printf types on arbitrary functions. */
+/* GCC can check printf and scanf types on arbitrary functions. */
 #ifdef __GNUC__
 #define CHECK_PRINTF(formatIdx, firstArg) \
    __attribute__ ((format(printf, formatIdx, firstArg)))
 #else
 #define CHECK_PRINTF(formatIdx, firstArg)
 #endif
+#ifdef __GNUC__
+#define CHECK_SCANF(formatIdx, firstArg) \
+   __attribute__ ((format(scanf, formatIdx, firstArg)))
+#else
+#define CHECK_SCANF(formatIdx, firstArg)
+#endif
 
 /* inline is __inline on windows. */
 #ifdef _WIN32
diff --git a/src/common/util.h b/src/common/util.h
index 018316e..5596378 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -233,16 +233,10 @@ const char *escaped(const char *string);
 char *tor_escape_str_for_socks_arg(const char *string);
 
 struct smartlist_t;
-int tor_vsscanf(const char *buf, const char *pattern, va_list ap)
-#ifdef __GNUC__
-  __attribute__((format(scanf, 2, 0)))
-#endif
-  ;
+int tor_vsscanf(const char *buf, const char *pattern, va_list ap) \
+  CHECK_SCANF(2, 0);
 int tor_sscanf(const char *buf, const char *pattern, ...)
-#ifdef __GNUC__
-  __attribute__((format(scanf, 2, 3)))
-#endif
-  ;
+  CHECK_SCANF(2, 3);
 
 void smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...)
   CHECK_PRINTF(2, 3);



More information about the tor-commits mailing list