diff options
author | dana koch <dsk@google.com> | 2013-06-13 22:04:01 +1000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-06-14 10:52:00 -0400 |
commit | 7f67becf307e383eeda94dc4a7dbf5629436ef8c (patch) | |
tree | 6ab04215985de8e0e0465f9ca5bda693c1904519 /src | |
parent | 6f5a720d151e8d43d0e76221dee842bc159af710 (diff) | |
download | tor-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.h | 8 | ||||
-rw-r--r-- | 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 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); |