aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordana koch <dsk@google.com>2013-06-13 22:04:01 +1000
committerNick Mathewson <nickm@torproject.org>2013-06-14 10:52:00 -0400
commit7f67becf307e383eeda94dc4a7dbf5629436ef8c (patch)
tree6ab04215985de8e0e0465f9ca5bda693c1904519 /src
parent6f5a720d151e8d43d0e76221dee842bc159af710 (diff)
downloadtor-7f67becf307e383eeda94dc4a7dbf5629436ef8c.tar
tor-7f67becf307e383eeda94dc4a7dbf5629436ef8c.tar.gz
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.
Diffstat (limited to 'src')
-rw-r--r--src/common/compat.h8
-rw-r--r--src/common/util.h12
2 files changed, 10 insertions, 10 deletions
diff --git a/src/common/compat.h b/src/common/compat.h
index 8ab719052..258fc9902 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 018316e1b..5596378bc 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);