sysfs_open leaks devnum2devname() result

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Dan Williams 2008-10-01 18:49:53 -07:00
parent e6b9548dce
commit 1e4bc070a7
1 changed files with 6 additions and 1 deletions

View File

@ -61,8 +61,12 @@ int sysfs_open(int devnum, char *devname, char *attr)
{
char fname[50];
int fd;
char *mdname = devnum2devname(devnum);
sprintf(fname, "/sys/block/%s/md/", devnum2devname(devnum));
if (!mdname)
return -1;
sprintf(fname, "/sys/block/%s/md/", mdname);
if (devname) {
strcat(fname, devname);
strcat(fname, "/");
@ -71,6 +75,7 @@ int sysfs_open(int devnum, char *devname, char *attr)
fd = open(fname, O_RDWR);
if (fd < 0 && errno == EACCES)
fd = open(fname, O_RDONLY);
free(mdname);
return fd;
}