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

Reply via email to