summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/libcurl/curl_slist_append.316
1 files changed, 14 insertions, 2 deletions
diff --git a/docs/libcurl/curl_slist_append.3 b/docs/libcurl/curl_slist_append.3
index 2d4e30527..a902b4754 100644
--- a/docs/libcurl/curl_slist_append.3
+++ b/docs/libcurl/curl_slist_append.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -39,17 +39,29 @@ The list should be freed again (after usage) with
\fIcurl_slist_free_all(3)\fP.
.SH RETURN VALUE
A null pointer is returned if anything went wrong, otherwise the new list
-pointer is returned.
+pointer is returned. To avoid overwriting an existing non-empty list on
+failure, the new list should be returned to a temporary variable which can
+be tested for NULL before updating the original list pointer.
.SH EXAMPLE
.nf
CURL *handle;
struct curl_slist *slist=NULL;
+struct curl_slist *temp=NULL;
slist = curl_slist_append(slist, "pragma:");
if (slist == NULL)
return -1;
+temp = curl_slist_append(slist, "Accept:")
+
+if (temp == NULL) {
+ curl_slist_free_all(slist);
+ return -1;
+}
+
+slist = temp;
+
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, slist);
curl_easy_perform(handle);