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>
This commit is contained in:
Petr Uzel 2011-09-13 11:08:46 +02:00 committed by Karel Zak
parent 0f96058686
commit 718d3b9814
1 changed files with 1 additions and 0 deletions

View File

@ -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;