summaryrefslogtreecommitdiff
path: root/testing/util-linux/dont-close-0.patch
blob: 75cfc5c5ee63b61e1613de5f4176bf092c48f56b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 3a18db62e661fbb307ad3a53c18afabc92d3c63e Mon Sep 17 00:00:00 2001
From: Petr Uzel <petr.uzel@suse.cz>
Date: Tue, 13 Sep 2011 11:08:46 +0200
Subject: [PATCH 1/2] lib: do not attempt to close(0) in sysfs_deinit()

If the 'open' fails we 'goto err' which runs 'sysfs_deinit()' on a 'cxt'
which hasn't been fully initialised. The 'dir_fd' is still 0, so
sysfs_deinit calls "close(0)".

Addresses: https://bugzilla.novell.com/show_bug.cgi?id=714151
Reported-by: Diego Ercolani <diego.ercolani@gmail.com>
Analysed-by: Neil Brown <nfbrown@suse.com>
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
---
 lib/sysfs.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/lib/sysfs.c b/lib/sysfs.c
index eec1f24..ebb3bb5 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
@@ -140,6 +140,7 @@ int sysfs_init(struct sysfs_cxt *cxt, dev_t devno, struct sysfs_cxt *parent)
 	int fd, rc = 0;
 
 	memset(cxt, 0, sizeof(*cxt));
+	cxt->dir_fd = -1;
 
 	if (!sysfs_devno_path(devno, path, sizeof(path)))
 		goto err;
-- 
1.7.6.1