forked from pool/util-linux
30 lines
1.0 KiB
Diff
30 lines
1.0 KiB
Diff
|
From cf06399d6aeb1e558baf2b46b617496ed7aac81c Mon Sep 17 00:00:00 2001
|
||
|
From: Petr Uzel <petr.uzel@suse.cz>
|
||
|
Date: Mon, 12 Sep 2011 16:11:41 +0200
|
||
|
Subject: [PATCH] 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(-)
|
||
|
|
||
|
Index: util-linux-2.20/lib/sysfs.c
|
||
|
===================================================================
|
||
|
--- util-linux-2.20.orig/lib/sysfs.c
|
||
|
+++ util-linux-2.20/lib/sysfs.c
|
||
|
@@ -140,6 +140,7 @@ int sysfs_init(struct sysfs_cxt *cxt, de
|
||
|
int fd, rc = 0;
|
||
|
|
||
|
memset(cxt, 0, sizeof(*cxt));
|
||
|
+ cxt->dir_fd = -1;
|
||
|
|
||
|
if (!sysfs_devno_path(devno, path, sizeof(path)))
|
||
|
goto err;
|