pthread_mutex_lock(&db_handle.lock);
if (!db_handle.lib) {
if ((!MYSQL_LIBPATH[0] || (db_handle.lib = dlopen(MYSQL_LIBPATH, RTLD_LAZY | RTLD_LOCAL)) == NULL) &&
- (db_handle.lib = dlopen("libmysqlclient.so", RTLD_LAZY | RTLD_LOCAL)) == NULL)
+ (db_handle.lib = dlopen("libmysqlclient.so", RTLD_LAZY | RTLD_LOCAL)) == NULL) {
+ free(*ctx);
+ *ctx = NULL;
return ERR(*ctx, ENOENT, "can't load '%s' or 'libmysqlclient.so' (%s)", MYSQL_LIBPATH, dlerror());
+ }
do {
LOAD(mysql_init, "mysql_init");
LOAD(mysql_get_client_version, "mysql_get_client_version");
dlclose(db_handle.lib);
db_handle.lib = NULL;
pthread_mutex_unlock(&db_handle.lock);
+ free(*ctx);
+ *ctx = NULL;
return err;
}
} else pthread_mutex_unlock(&db_handle.lock);
int glite_lbu_QueryIndices(glite_lbu_DBContext ctx, const char *table, char ***key_names, char ****column_names) {
glite_lbu_Statement stmt = NULL;
- int i,j,ret;
+ size_t i,j,ret;
/* XXX: "show index from" columns. Matches at least MySQL 4.0.11 */
char *sql, *showcol[12];
int Key_name,Seq_in_index,Column_name,Sub_part;
char **keys = NULL;
- int *cols = NULL;
+ size_t *cols = NULL;
char **col_names = NULL;
- int nkeys = 0;
+ size_t nkeys = 0;
char ***idx = NULL;