Родитель
9fffe925d2
Коммит
c4ea71ae32
13
lib/dynbuf.c
13
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;
|
||||
}
|
||||
|
||||
|
|
16
lib/dynbuf.h
16
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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче