79 lines
2.4 KiB
Diff
79 lines
2.4 KiB
Diff
From c4ea71ae3235cca8c6837f48664d587e52eb32d2 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Stenberg <daniel@haxx.se>
|
|
Date: Wed, 9 Sep 2020 15:41:05 +0200
|
|
Subject: [PATCH] dynbuf: provide curlx_ names for reuse by the curl tool
|
|
|
|
Closes #5946
|
|
|
|
Conflict:NA
|
|
Reference:https://github.com/curl/curl/commit/c4ea71ae3235cca8c6837f48664d587e52eb32d2
|
|
---
|
|
lib/dynbuf.c | 13 ++++++++-----
|
|
lib/dynbuf.h | 16 ++++++++++++++++
|
|
2 files changed, 24 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/lib/dynbuf.c b/lib/dynbuf.c
|
|
index 265a769e871ded..5e15040bb51ef9 100644
|
|
--- a/lib/dynbuf.c
|
|
+++ b/lib/dynbuf.c
|
|
@@ -21,12 +21,11 @@
|
|
***************************************************************************/
|
|
|
|
#include "curl_setup.h"
|
|
-#include "strdup.h"
|
|
#include "dynbuf.h"
|
|
-
|
|
-/* The last 3 #include files should be in this order */
|
|
#include "curl_printf.h"
|
|
+#ifdef BUILDING_LIBCURL
|
|
#include "curl_memory.h"
|
|
+#endif
|
|
#include "memdebug.h"
|
|
|
|
#define MIN_FIRST_ALLOC 32
|
|
@@ -94,11 +93,15 @@ static CURLcode dyn_nappend(struct dynbuf *s,
|
|
}
|
|
|
|
if(a != s->allc) {
|
|
- s->bufr = Curl_saferealloc(s->bufr, a);
|
|
- if(!s->bufr) {
|
|
+ /* this logic is not using Curl_saferealloc() to make the tool not have to
|
|
+ include that as well when it uses this code */
|
|
+ void *p = realloc(s->bufr, a);
|
|
+ if(!p) {
|
|
+ Curl_safefree(s->bufr);
|
|
s->leng = s->allc = 0;
|
|
return CURLE_OUT_OF_MEMORY;
|
|
}
|
|
+ s->bufr = p;
|
|
s->allc = a;
|
|
}
|
|
|
|
diff --git a/lib/dynbuf.h b/lib/dynbuf.h
|
|
index ecc99575533c86..1360dd43286f32 100644
|
|
--- a/lib/dynbuf.h
|
|
+++ b/lib/dynbuf.h
|
|
@@ -22,6 +22,22 @@
|
|
*
|
|
***************************************************************************/
|
|
|
|
+#ifndef BUILDING_LIBCURL
|
|
+/* this renames the functions so that the tool code can use the same code
|
|
+ without getting symbol collisions */
|
|
+#define Curl_dyn_init(a,b) curlx_dyn_init(a,b)
|
|
+#define Curl_dyn_add(a,b) curlx_dyn_add(a,b)
|
|
+#define Curl_dyn_addn(a,b,c) curlx_dyn_addn(a,b,c)
|
|
+#define Curl_dyn_addf curlx_dyn_addf
|
|
+#define Curl_dyn_free(a) curlx_dyn_free(a)
|
|
+#define Curl_dyn_ptr(a) curlx_dyn_ptr(a)
|
|
+#define Curl_dyn_uptr(a) curlx_dyn_uptr(a)
|
|
+#define Curl_dyn_len(a) curlx_dyn_len(a)
|
|
+#define Curl_dyn_reset(a) curlx_dyn_reset(a)
|
|
+#define Curl_dyn_tail(a,b) curlx_dyn_tail(a,b)
|
|
+#define curlx_dynbuf dynbuf /* for the struct name */
|
|
+#endif
|
|
+
|
|
struct dynbuf {
|
|
char *bufr; /* point to a null-terminated allocated buffer */
|
|
size_t leng; /* number of bytes *EXCLUDING* the zero terminator */
|