From: Gisle Vanem Date: Fri, 26 Jan 2007 15:15:27 +0000 (+0000) Subject: Options of type CURLOPTTYPE_FUNCTIONPOINT are never printable. X-Git-Tag: curl-7_16_1~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d681bc7520b73933cab2d1176e69693770505e81;p=thirdparty%2Fcurl.git Options of type CURLOPTTYPE_FUNCTIONPOINT are never printable. --- diff --git a/src/main.c b/src/main.c index ab5bbc5950..4867d1a0ec 100644 --- a/src/main.c +++ b/src/main.c @@ -3225,13 +3225,21 @@ CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...) } else if(tag < CURLOPTTYPE_OFF_T) { - /* we treat both object and function pointers like this */ void *pval = va_arg(arg, void *); unsigned char *ptr = (unsigned char *)pval; + /* function pointers are never printable */ + if (tag >= CURLOPTTYPE_FUNCTIONPOINT) { + if (pval) { + snprintf(value, sizeof(value), "%p", pval); + remark = TRUE; + } + else + strcpy(value, "NULL"); + } /* attempt to figure out if it is a string (since the tag numerical doesn't offer this info) and then output it as a string if so */ - if(pval && isgraph(ptr[0]) && isgraph(ptr[1])) + else if(pval && isgraph(ptr[0]) && isgraph(ptr[1])) snprintf(value, sizeof(value), "\"%s\"", (char *)ptr); else if(pval) { snprintf(value, sizeof(value), "%p", pval);