Changeset 1851

Show
Ignore:
Timestamp:
03/17/07 11:08:06 (21 months ago)
Author:
mjahn
Message:

- fix patch based on XmpmPatches? 019-sqlite_memory_leaks_and_api_usage

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/branch-0.2X/opensync/opensync/opensync_db.c

    r1666 r1851  
    3838        if (rc) { 
    3939                osync_error_set(error, OSYNC_ERROR_GENERIC, "Cannot open database: %s", sqlite3_errmsg(db->db)); 
    40                 goto error_free; 
     40                goto error_close; 
    4141        } 
    4242        sqlite3_trace(db->db, osync_db_trace, NULL); 
     
    4545        return db; 
    4646 
    47 error_free: 
     47error_close: 
     48        osync_db_close(db); 
     49//error_free: 
    4850        g_free(db); 
    4951error: 
     
    5759         
    5860        int ret = sqlite3_close(db->db); 
    59         if (ret) 
     61        if (ret != SQLITE_OK) 
    6062                osync_trace(TRACE_INTERNAL, "Can't close database: %s", sqlite3_errmsg(db->db)); 
    6163         
     
    7072        if (sqlite3_prepare(db->db, query, -1, &ppStmt, NULL) != SQLITE_OK) 
    7173                osync_debug("OSDB", 3, "Unable prepare count! %s", sqlite3_errmsg(db->db)); 
    72         if (sqlite3_step(ppStmt) != SQLITE_OK) 
     74        ret = sqlite3_step(ppStmt); 
     75        if (ret != SQLITE_DONE && ret != SQLITE_ROW) 
    7376                osync_debug("OSDB", 3, "Unable step count! %s", sqlite3_errmsg(db->db)); 
     77        if (ret == SQLITE_DONE) 
     78                osync_debug("OSDB", 3, "No row found!"); 
    7479        ret = sqlite3_column_int64(ppStmt, 0); 
    7580        sqlite3_finalize(ppStmt); 
     
    8590        if (!(log_db = osync_db_open(filename, error))) { 
    8691                osync_error_update(error, "Unable to load changelog: %s", osync_error_print(error)); 
     92                g_free(filename); 
    8793                osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); 
    8894                return NULL; 
     
    481487        char *filename = g_strdup_printf ("%s/anchor.db", member->configdir); 
    482488        if (!(sdb = osync_db_open(filename, error))) { 
     489                g_free(filename); 
    483490                osync_error_update(error, "Unable to open anchor table: %s", (*error)->message); 
    484491                return NULL; 
     
    503510        if (sqlite3_prepare(sdb->db, query, -1, &ppStmt, NULL) != SQLITE_OK) 
    504511                osync_debug("OSDB", 3, "Unable prepare anchor! %s", sqlite3_errmsg(sdb->db)); 
    505         sqlite3_step(ppStmt); 
     512        int ret = sqlite3_step(ppStmt); 
     513        if (ret != SQLITE_DONE && ret != SQLITE_ROW) 
     514                osync_debug("OSDB", 3, "Unable step count! %s", sqlite3_errmsg(sdb->db)); 
     515        if (ret == SQLITE_DONE) 
     516                osync_debug("OSDB", 3, "No row found!"); 
    506517        *retanchor = g_strdup((gchar*)sqlite3_column_text(ppStmt, 0)); 
    507518        sqlite3_finalize(ppStmt); 
     
    527538        char *filename = g_strdup_printf ("%s/hash.db", member->configdir); 
    528539        if (!(table->dbhandle = osync_db_open(filename, error))) { 
     540                g_free(filename); 
    529541                osync_error_update(error, "Unable to open hashtable: %s", (*error)->message); 
    530542                return FALSE;