Commit ecf1c6ca authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- 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.
parent 9b48991e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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 ,
+1 −0
Original line number Diff line number Diff line
@@ -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:

+9 −1
Original line number Diff line number Diff line
@@ -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 */