summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2020-09-15 15:53:13 +0200
committerDaniel Stenberg <daniel@haxx.se>2020-09-15 22:52:51 +0200
commit0b4c4145aac87047513e30a348e63fde96da892d (patch)
tree002c1b9dee7f841b21ddaf0c1b0dd2be05fe06ac
parent2cc685724783195f04cf5abebb685354503439c6 (diff)
downloadcurl-0b4c4145aac87047513e30a348e63fde96da892d.tar.gz
tool_writeout: protect fputs() from NULL
When the code was changed to do fputs() instead of fprintf() it got sensitive for NULL pointers; add checks for that. Follow-up from 0c1e767e83ec66 Closes #5963
-rw-r--r--src/tool_writeout.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/tool_writeout.c b/src/tool_writeout.c
index 63d2cd003..393e16861 100644
--- a/src/tool_writeout.c
+++ b/src/tool_writeout.c
@@ -284,9 +284,8 @@ void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo)
fputs(per->outs.filename, stream);
break;
case VAR_PRIMARY_IP:
- if(CURLE_OK ==
- curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP,
- &stringp))
+ if((CURLE_OK == curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP,
+ &stringp)) && stringp)
fputs(stringp, stream);
break;
case VAR_PRIMARY_PORT:
@@ -296,9 +295,8 @@ void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo)
fprintf(stream, "%ld", longinfo);
break;
case VAR_LOCAL_IP:
- if(CURLE_OK ==
- curl_easy_getinfo(curl, CURLINFO_LOCAL_IP,
- &stringp))
+ if((CURLE_OK == curl_easy_getinfo(curl, CURLINFO_LOCAL_IP,
+ &stringp)) && stringp)
fputs(stringp, stream);
break;
case VAR_LOCAL_PORT:
@@ -331,9 +329,8 @@ void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo)
}
break;
case VAR_SCHEME:
- if(CURLE_OK ==
- curl_easy_getinfo(curl, CURLINFO_SCHEME,
- &stringp))
+ if((CURLE_OK == curl_easy_getinfo(curl, CURLINFO_SCHEME,
+ &stringp)) && stringp)
fputs(stringp, stream);
break;
case VAR_STDOUT: