]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
dynbuf: assert for NULL pointer inputs
authorDaniel Stenberg <daniel@haxx.se>
Tue, 31 Oct 2023 15:21:35 +0000 (16:21 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 1 Nov 2023 09:53:49 +0000 (10:53 +0100)
Help us catch more mistakes.

Closes #12238

lib/dynbuf.c

index 0c9c491aebc1b7ffc4f3d62d616d44e07fb32c6a..2973d8da29cee5bbfd3060834fb30e5a3f63dd61 100644 (file)
@@ -77,6 +77,7 @@ static CURLcode dyn_nappend(struct dynbuf *s,
   DEBUGASSERT(indx < s->toobig);
   DEBUGASSERT(!s->leng || s->bufr);
   DEBUGASSERT(a <= s->toobig);
+  DEBUGASSERT(!len || mem);
 
   if(fit > s->toobig) {
     Curl_dyn_free(s);
@@ -174,10 +175,12 @@ CURLcode Curl_dyn_addn(struct dynbuf *s, const void *mem, size_t len)
  */
 CURLcode Curl_dyn_add(struct dynbuf *s, const char *str)
 {
-  size_t n = strlen(str);
+  size_t n;
+  DEBUGASSERT(str);
   DEBUGASSERT(s);
   DEBUGASSERT(s->init == DYNINIT);
   DEBUGASSERT(!s->leng || s->bufr);
+  n = strlen(str);
   return dyn_nappend(s, (unsigned char *)str, n);
 }
 
@@ -191,6 +194,7 @@ CURLcode Curl_dyn_vaddf(struct dynbuf *s, const char *fmt, va_list ap)
   DEBUGASSERT(s);
   DEBUGASSERT(s->init == DYNINIT);
   DEBUGASSERT(!s->leng || s->bufr);
+  DEBUGASSERT(fmt);
   rc = Curl_dyn_vprintf(s, fmt, ap);
 
   if(!rc)