Hi,
Looking for a better fix for bug# 432210
https://bugs.launchpad.net/drizzle/+bug/432210
I turned to valgrind for some answers. This is what it told me:
==28701== Use of uninitialised value of size 8
==28701== at 0x4C23A10: drizzle_column_free (column.c:357)
==28701== by 0x4C228EC: drizzle_result_free (result.c:81)
==28701== by 0x408C11: get_current_db() (drizzle.cc:2607)
==28701== by 0x40BC75: com_use(std::string*, char const*) (drizzle.cc:3762)
==28701== by 0x4078BF: add_line(std::string*, char*, char*, bool*)
(drizzle.cc:2152)
==28701== by 0x406D29: read_and_execute(bool) (drizzle.cc:1915)
==28701== by 0x405D4D: main (drizzle.cc:1324)
==28701== Uninitialised value was created by a stack allocation
==28701== at 0x408B59: get_current_db() (drizzle.cc:2591)
.........
==28701== at 0x408B59: get_current_db() (drizzle.cc:2591)
........
line 2591 is :
2590 static void get_current_db(void)
2591 {
2592 drizzle_return_t ret;
2593 drizzle_result_st res;
free(current_db);
current_db= NULL;
/* In case of error below current_db will be NULL */
if (drizzle_query_str(&con, &res, "SELECT DATABASE()", &ret) != NULL)
{
if (ret == DRIZZLE_RETURN_OK &&
drizzle_result_buffer(&res) == DRIZZLE_RETURN_OK)
{
drizzle_row_t row= drizzle_row_next(&res);
if (row[0])
current_db= strdup(row[0]);
}
drizzle_result_free(&res);
}
}
This is what I want to do, but 1) I don't know how, and 2) I'm not
even sure this is the way to fix it.
* How do I initialize drizzle_result_st res ?
because drizzle_result_st res= NULL; does not work :)
Thanks
Diego
--
Diego Medina
Web Developer
http://www.fmpwizard.com
_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help : https://help.launchpad.net/ListHelp