Fixed various memory leaks
dbuser.c: key.user value was never freed skygw_utils.cc: replace_literal values were not always freed
This commit is contained in:
@ -388,7 +388,7 @@ getUsers(SERVICE *service, struct users *users)
|
|||||||
memcpy(users->cksum, hash, SHA_DIGEST_LENGTH);
|
memcpy(users->cksum, hash, SHA_DIGEST_LENGTH);
|
||||||
|
|
||||||
free(users_data);
|
free(users_data);
|
||||||
|
free(key.user);
|
||||||
mysql_free_result(result);
|
mysql_free_result(result);
|
||||||
mysql_close(con);
|
mysql_close(con);
|
||||||
mysql_thread_end();
|
mysql_thread_end();
|
||||||
|
|||||||
@ -1912,6 +1912,7 @@ char* replace_literal(
|
|||||||
fprintf(stderr, "Regex memory allocation failed : %s\n",
|
fprintf(stderr, "Regex memory allocation failed : %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
free(search_re);
|
free(search_re);
|
||||||
|
free(newstr);
|
||||||
newstr = haystack;
|
newstr = haystack;
|
||||||
goto retblock;
|
goto retblock;
|
||||||
}
|
}
|
||||||
@ -1928,6 +1929,7 @@ char* replace_literal(
|
|||||||
search_re,
|
search_re,
|
||||||
error_message);
|
error_message);
|
||||||
free(search_re);
|
free(search_re);
|
||||||
|
free(newstr);
|
||||||
newstr = haystack;
|
newstr = haystack;
|
||||||
goto retblock;
|
goto retblock;
|
||||||
}
|
}
|
||||||
@ -1936,6 +1938,7 @@ char* replace_literal(
|
|||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
{
|
{
|
||||||
free(search_re);
|
free(search_re);
|
||||||
|
free(newstr);
|
||||||
regfree(&re);
|
regfree(&re);
|
||||||
newstr = haystack;
|
newstr = haystack;
|
||||||
goto retblock;
|
goto retblock;
|
||||||
@ -1947,6 +1950,7 @@ char* replace_literal(
|
|||||||
|
|
||||||
regfree(&re);
|
regfree(&re);
|
||||||
free(haystack);
|
free(haystack);
|
||||||
|
free(search_re);
|
||||||
retblock:
|
retblock:
|
||||||
return newstr;
|
return newstr;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user