Fixed memory leak in config_load
This commit is contained in:
@ -209,20 +209,33 @@ int rval;
|
|||||||
conn = mysql_init(NULL);
|
conn = mysql_init(NULL);
|
||||||
if (conn) {
|
if (conn) {
|
||||||
if (mysql_real_connect(conn, NULL, NULL, NULL, NULL, 0, NULL, 0)) {
|
if (mysql_real_connect(conn, NULL, NULL, NULL, NULL, 0, NULL, 0)) {
|
||||||
char *ptr;
|
char *ptr,*tmp;
|
||||||
version_string = (char *)mysql_get_server_info(conn);
|
|
||||||
|
tmp = (char *)mysql_get_server_info(conn);
|
||||||
unsigned int server_version = mysql_get_server_version(conn);
|
unsigned int server_version = mysql_get_server_version(conn);
|
||||||
ptr = strstr(version_string, "-embedded");
|
|
||||||
|
if(version_string)
|
||||||
|
free(version_string);
|
||||||
|
|
||||||
|
if((version_string = malloc(strlen(tmp) + strlen("5.5.5-") + 1)) == NULL)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (server_version >= 100000)
|
||||||
|
{
|
||||||
|
strcpy(version_string,"5.5.5-");
|
||||||
|
strcat(version_string,tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcpy(version_string,tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptr = strstr(tmp, "-embedded");
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
}
|
}
|
||||||
if (server_version >= 100000)
|
|
||||||
{
|
|
||||||
char* tmpstr = malloc(strlen(version_string) + strlen("5.5.5-") + 1);
|
|
||||||
strcpy(tmpstr,"5.5.5-");
|
|
||||||
strcat(tmpstr,version_string);
|
|
||||||
version_string = tmpstr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
mysql_close(conn);
|
mysql_close(conn);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user