diff options
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | RELEASE-NOTES | 1 | ||||
-rw-r--r-- | include/curl/curl.h | 10 |
3 files changed, 16 insertions, 1 deletions
@@ -6,6 +6,12 @@ Changelog +Daniel Stenberg (11 Mar 2008) +- Added a macro for curl_easy_setopt() that accepts three arguments and simply + does nothing with them, just to make sure libcurl users always use three + arguments to this function. Due to its use of ... for the third argument, it + is otherwise hard to detect abuse. + Michal Marek (11 Mar 2008) - Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html , diff --git a/RELEASE-NOTES b/RELEASE-NOTES index c491d18b3..0c20a0701 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -20,6 +20,7 @@ This release includes the following changes: o added a type checking macro for curl_easy_setopt(), watch out for new warnings in code using libcurl (needs gcc-4.3 and currently only works in C mode) + o curl_easy_setopt() uses are now checked to use three arguments This release includes the following bugfixes: diff --git a/include/curl/curl.h b/include/curl/curl.h index 3027ca06d..4af714291 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -1792,8 +1792,16 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); #include "multi.h" /* the typechecker doesn't work in C++ (yet) */ -#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && !defined(__cplusplus) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ + !defined(__cplusplus) #include "typecheck-gcc.h" +#else +#if defined(__STDC__) && (__STDC__ >= 1) +/* This preprocessor magic that replaces a call with the exact same call is + only done to make sure application authors use exactly three arguments + to this function. */ +#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) +#endif /* __STDC__ >= 1 */ #endif /* gcc >= 4.3 && !__cplusplus */ #endif /* __CURL_CURL_H */ |