Package: libdb4.3
Version: 4.3.29-8
Severity: wishlist
Tags: patch

Hi,

I'm sorry I can't tell you anything terribly useful about this patch.
I'm just the messenger. It was rattling around internally at work, and I
wanted to get it further upstream.

regards

Andrew

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-686
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)

Versions of packages libdb4.3 depends on:
ii  libc6                  2.3.6.ds1-13etch5 GNU C Library: Shared libraries

libdb4.3 recommends no packages.

-- no debconf information
fix memory leak; free real_name before returning

--- db/db_upg.c.orig	2007-06-26 14:54:10.618212000 -0700
+++ db/db_upg.c	2007-06-28 19:46:59.224067000 -0700
@@ -94,13 +94,16 @@
 	fhp = NULL;
 
 	/* Get the real backing file name. */
-	if ((ret = __db_appname(dbenv,
-	    DB_APP_DATA, fname, 0, NULL, &real_name)) != 0)
+	if ((ret = __db_appname(dbenv, DB_APP_DATA, fname, 0, NULL,
+					&real_name)) != 0) {
+		__os_free(dbenv, real_name);
 		return (ret);
+	}
 
 	/* Open the file. */
 	if ((ret = __os_open(dbenv, real_name, 0, 0, &fhp)) != 0) {
 		__db_err(dbenv, "%s: %s", real_name, db_strerror(ret));
+		__os_free(dbenv, real_name);
 		return (ret);
 	}
 
@@ -218,12 +221,16 @@
 			 * needs upgrading is the meta-database page, don't
 			 * bother with a full pass.
 			 */
-			if ((ret = __qam_31_qammeta(dbp, real_name, mbuf)) != 0)
+			if ((ret = __qam_31_qammeta(dbp, real_name, mbuf)) != 0) {
+				__os_free(dbenv, real_name);
 				return (ret);
+			}
 			/* FALLTHROUGH */
 		case 2:
-			if ((ret = __qam_32_qammeta(dbp, real_name, mbuf)) != 0)
+			if ((ret = __qam_32_qammeta(dbp, real_name, mbuf)) != 0) {
+				__os_free(dbenv, real_name);
 				return (ret);
+			}
 			if ((ret = __os_seek(dbenv,
 			    fhp, 0, 0, 0, 0, DB_OS_SEEK_SET)) != 0)
 				goto err;

Reply via email to