mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-27 04:09:31 +03:00
I was checking a test app in valgrind and much to my surprise it was complaining about a memleak in libmicrohttpd.
In check_argument_match() a buffer is allocated using strdup() but freed nowhere. I wouldn't have noticed this leak if it wasn't for valgrind because if a URI is requested without any arguments (my usual case) the buffer that gets allocated has 'only' a length of 1 byte, thus memory usage will build up very slowly over time. The patch attached fixes it. Btw. the indentation of that file is a mess, tabs and spaces are mixed :-| Regards, Andreas
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
Thu Jun 4 13:37:05 CEST 2015
|
||||
Fixing memory leak in digest authentication. -AW
|
||||
|
||||
Wed Jun 03 21:23:47 CEST 2015
|
||||
Add deprecation compiler messages for deprecated functions
|
||||
and macros. -EG
|
||||
|
||||
@@ -508,7 +508,10 @@ check_argument_match (struct MHD_Connection *connection,
|
||||
connection,
|
||||
argp);
|
||||
if (MHD_YES != test_header (connection, argp, NULL))
|
||||
return MHD_NO;
|
||||
{
|
||||
free(argb);
|
||||
return MHD_NO;
|
||||
}
|
||||
num_headers++;
|
||||
break;
|
||||
}
|
||||
@@ -527,10 +530,16 @@ check_argument_match (struct MHD_Connection *connection,
|
||||
connection,
|
||||
equals);
|
||||
if (! test_header (connection, argp, equals))
|
||||
return MHD_NO;
|
||||
{
|
||||
free(argb);
|
||||
return MHD_NO;
|
||||
}
|
||||
|
||||
num_headers++;
|
||||
argp = amper;
|
||||
}
|
||||
|
||||
free(argb);
|
||||
|
||||
/* also check that the number of headers matches */
|
||||
for (pos = connection->headers_received; NULL != pos; pos = pos->next)
|
||||
|
||||
Reference in New Issue
Block a user