1
0
mirror of https://github.com/moparisthebest/curl synced 2025-03-11 07:39:50 -04:00

assert: avoid, use DEBUGASSERT instead!

... as it does extra checks to actually work.

Reported-by: jonrumsey at github
Fixes #1504
This commit is contained in:
Daniel Stenberg 2017-05-22 13:58:17 +02:00
parent fab9629133
commit 8589e1fe30
4 changed files with 12 additions and 18 deletions

View File

@ -784,7 +784,7 @@ static int on_begin_headers(nghttp2_session *session,
/* This is trailer HEADERS started. Allocate buffer for them. */ /* This is trailer HEADERS started. Allocate buffer for them. */
DEBUGF(infof(data_s, "trailer field started\n")); DEBUGF(infof(data_s, "trailer field started\n"));
assert(stream->trailer_recvbuf == NULL); DEBUGASSERT(stream->trailer_recvbuf == NULL);
stream->trailer_recvbuf = Curl_add_buffer_init(); stream->trailer_recvbuf = Curl_add_buffer_init();
if(!stream->trailer_recvbuf) { if(!stream->trailer_recvbuf) {
@ -1453,7 +1453,7 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
infof(data, "%zu data bytes written\n", nread); infof(data, "%zu data bytes written\n", nread);
if(stream->pauselen == 0) { if(stream->pauselen == 0) {
DEBUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id)); DEBUGF(infof(data, "Unpaused by stream %u\n", stream->stream_id));
assert(httpc->pause_stream_id == stream->stream_id); DEBUGASSERT(httpc->pause_stream_id == stream->stream_id);
httpc->pause_stream_id = 0; httpc->pause_stream_id = 0;
stream->pausedata = NULL; stream->pausedata = NULL;

View File

@ -35,10 +35,6 @@
#include "curl_memory.h" #include "curl_memory.h"
#include "memdebug.h" #include "memdebug.h"
#ifndef HAVE_ASSERT_H
# define assert(x) Curl_nop_stmt
#endif
/* /*
* Until 2011-08-17 libcurl's Memory Tracking feature also performed * Until 2011-08-17 libcurl's Memory Tracking feature also performed
* automatic malloc and free filling operations using 0xA5 and 0x13 * automatic malloc and free filling operations using 0xA5 and 0x13
@ -167,7 +163,7 @@ void *curl_domalloc(size_t wantedsize, int line, const char *source)
struct memdebug *mem; struct memdebug *mem;
size_t size; size_t size;
assert(wantedsize != 0); DEBUGASSERT(wantedsize != 0);
if(countcheck("malloc", line, source)) if(countcheck("malloc", line, source))
return NULL; return NULL;
@ -196,8 +192,8 @@ void *curl_docalloc(size_t wanted_elements, size_t wanted_size,
struct memdebug *mem; struct memdebug *mem;
size_t size, user_size; size_t size, user_size;
assert(wanted_elements != 0); DEBUGASSERT(wanted_elements != 0);
assert(wanted_size != 0); DEBUGASSERT(wanted_size != 0);
if(countcheck("calloc", line, source)) if(countcheck("calloc", line, source))
return NULL; return NULL;
@ -223,7 +219,7 @@ char *curl_dostrdup(const char *str, int line, const char *source)
char *mem; char *mem;
size_t len; size_t len;
assert(str != NULL); DEBUGASSERT(str != NULL);
if(countcheck("strdup", line, source)) if(countcheck("strdup", line, source))
return NULL; return NULL;
@ -247,7 +243,7 @@ wchar_t *curl_dowcsdup(const wchar_t *str, int line, const char *source)
wchar_t *mem; wchar_t *mem;
size_t wsiz, bsiz; size_t wsiz, bsiz;
assert(str != NULL); DEBUGASSERT(str != NULL);
if(countcheck("wcsdup", line, source)) if(countcheck("wcsdup", line, source))
return NULL; return NULL;
@ -276,7 +272,7 @@ void *curl_dorealloc(void *ptr, size_t wantedsize,
size_t size = sizeof(struct memdebug)+wantedsize; size_t size = sizeof(struct memdebug)+wantedsize;
assert(wantedsize != 0); DEBUGASSERT(wantedsize != 0);
if(countcheck("realloc", line, source)) if(countcheck("realloc", line, source))
return NULL; return NULL;
@ -445,7 +441,7 @@ int curl_fclose(FILE *file, int line, const char *source)
{ {
int res; int res;
assert(file != NULL); DEBUGDEBUGASSERT(file != NULL);
res=fclose(file); res=fclose(file);

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1999 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1999 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -951,9 +951,7 @@ static int dprintf_formatf(
/* NOTE NOTE NOTE!! Not all sprintf implementations return number of /* NOTE NOTE NOTE!! Not all sprintf implementations return number of
output characters */ output characters */
(sprintf)(work, formatbuf, p->data.dnum); (sprintf)(work, formatbuf, p->data.dnum);
#ifdef CURLDEBUG DEBUGASSERT(strlen(work) <= sizeof(work));
assert(strlen(work) <= sizeof(work));
#endif
for(fptr=work; *fptr; fptr++) for(fptr=work; *fptr; fptr++)
OUTCHAR(*fptr); OUTCHAR(*fptr);
} }

View File

@ -121,7 +121,7 @@ CURLcode Curl_rand(struct Curl_easy *data, unsigned char *rnd, size_t num)
{ {
CURLcode result = CURLE_BAD_FUNCTION_ARGUMENT; CURLcode result = CURLE_BAD_FUNCTION_ARGUMENT;
assert(num > 0); DEBUGASSERT(num > 0);
while(num) { while(num) {
unsigned int r; unsigned int r;