Package: libselinux1
Version: 2.0.89-4
Severity: normal
Tags: upstream patch

   Under certain conditions, such as when the selinux filesystem is not
available, init.c leaks a getline buffer. The attached patch fixes that.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libselinux1 depends on:
ii  libc6                         2.10.2-6   Embedded GNU C Library: Shared lib

libselinux1 recommends no packages.

libselinux1 suggests no packages.

-- no debconf information
--- libselinux-2.0.89/src/init.c	2009-11-02 22:07:54.000000000 +0000
+++ libselinux-2.0.89/src/init.c.new	2010-02-20 12:06:49.000000000 +0000
@@ -59,14 +59,18 @@
 	}
 	fclose(fp);
 
-	if (!exists)
+	if (!exists) {
+		free(buf);
 		return;
+	}
 
 	/* At this point, the usual spot doesn't have an selinuxfs so
 	 * we look around for it */
 	fp = fopen("/proc/mounts", "r");
-	if (!fp)
+	if (!fp) {
+		free(buf);
 		return;
+	}
 
 	__fsetlocking(fp, FSETLOCKING_BYCALLER);
 	while ((num = getline(&buf, &len, fp)) != -1) {

Reply via email to