~ubuntu-branches/ubuntu/jaunty/db4.3/jaunty

« back to all changes in this revision

Viewing changes to db/db_upg.c

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Pollock
  • Date: 2008-03-05 18:44:28 UTC
  • Revision ID: james.westby@ubuntu.com-20080305184428-m11hbcxdwr2yk3b3
Tags: 4.3.29-11ubuntu1
Add patch to fix memory leak with realname (LP: #198996)

Show diffs side-by-side

added added

removed removed

Lines of Context:
94
94
        fhp = NULL;
95
95
 
96
96
        /* Get the real backing file name. */
97
 
        if ((ret = __db_appname(dbenv,
98
 
            DB_APP_DATA, fname, 0, NULL, &real_name)) != 0)
 
97
        if ((ret = __db_appname(dbenv, DB_APP_DATA, fname, 0, NULL,
 
98
                                        &real_name)) != 0) {
 
99
                __os_free(dbenv, real_name);
99
100
                return (ret);
 
101
        }
100
102
 
101
103
        /* Open the file. */
102
104
        if ((ret = __os_open(dbenv, real_name, 0, 0, &fhp)) != 0) {
103
105
                __db_err(dbenv, "%s: %s", real_name, db_strerror(ret));
 
106
                __os_free(dbenv, real_name);
104
107
                return (ret);
105
108
        }
106
109
 
218
221
                         * needs upgrading is the meta-database page, don't
219
222
                         * bother with a full pass.
220
223
                         */
221
 
                        if ((ret = __qam_31_qammeta(dbp, real_name, mbuf)) != 0)
 
224
                        if ((ret = __qam_31_qammeta(dbp, real_name, mbuf)) != 0) {
 
225
                                __os_free(dbenv, real_name);
222
226
                                return (ret);
 
227
                        }
223
228
                        /* FALLTHROUGH */
224
229
                case 2:
225
 
                        if ((ret = __qam_32_qammeta(dbp, real_name, mbuf)) != 0)
 
230
                        if ((ret = __qam_32_qammeta(dbp, real_name, mbuf)) != 0) {
 
231
                                __os_free(dbenv, real_name);
226
232
                                return (ret);
 
233
                        }
227
234
                        if ((ret = __os_seek(dbenv,
228
235
                            fhp, 0, 0, 0, 0, DB_OS_SEEK_SET)) != 0)
229
236
                                goto err;