Page MenuHomeFreeBSD

D27334.diff
No OneTemporary

D27334.diff

diff --git a/sys/fs/devfs/devfs_devs.c b/sys/fs/devfs/devfs_devs.c
--- a/sys/fs/devfs/devfs_devs.c
+++ b/sys/fs/devfs/devfs_devs.c
@@ -482,7 +482,7 @@
static void
devfs_metoo(struct cdev_priv *cdp, struct devfs_mount *dm)
{
- struct devfs_dirent **dep;
+ struct devfs_dirent **dep, **olddep;
int siz;
siz = (dm->dm_idx + 1) * sizeof *dep;
@@ -495,8 +495,7 @@
return;
}
memcpy(dep, cdp->cdp_dirents, (cdp->cdp_maxdirent + 1) * sizeof *dep);
- if (cdp->cdp_maxdirent > 0)
- free(cdp->cdp_dirents, M_DEVFS2);
+ olddep = cdp->cdp_maxdirent > 0 ? cdp->cdp_dirents : NULL;
cdp->cdp_dirents = dep;
/*
* XXX: if malloc told us how much we actually got this could
@@ -504,6 +503,7 @@
*/
cdp->cdp_maxdirent = dm->dm_idx;
dev_unlock();
+ free(olddep, M_DEVFS2);
}
/*

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 28, 1:33 PM (4 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30474394
Default Alt Text
D27334.diff (793 B)

Event Timeline