From: Trond Myklebust Date: Wed, 13 Oct 2010 15:27:21 +0000 (-0400) Subject: export: Ensure that we free struct exportent->e_uuid X-Git-Tag: nfs-utils-1-2-4-rc1~14 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=5fe118b838254023d83424c5010ae73a91ec267d export: Ensure that we free struct exportent->e_uuid Currently, the exportent->e_uuid is initialised in support/nfs/exports.c:parseopts(), but it is never freed. Also ensure that exportent->e_uuid is duplicated correctly in dupexportent(). Adjusted to account for the new export_free() helper. Also, e_uuid points to memory that is always allocated with strdup(3), not with xstrdup(). Thus it must be freed via free(3) and not via xfree(). Signed-off-by: Trond Myklebust Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson --- diff --git a/support/export/export.c b/support/export/export.c index f528603..4fda30a 100644 --- a/support/export/export.c +++ b/support/export/export.c @@ -38,6 +38,7 @@ export_free(nfs_export *exp) xfree(exp->m_export.e_sqgids); free(exp->m_export.e_mountpoint); free(exp->m_export.e_fslocdata); + free(exp->m_export.e_uuid); xfree(exp->m_export.e_hostname); xfree(exp); diff --git a/support/nfs/exports.c b/support/nfs/exports.c index a93941c..1744ed6 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -332,6 +332,8 @@ dupexportent(struct exportent *dst, struct exportent *src) dst->e_mountpoint = strdup(src->e_mountpoint); if (src->e_fslocdata) dst->e_fslocdata = strdup(src->e_fslocdata); + if (src->e_uuid) + dst->e_uuid = strdup(src->e_uuid); dst->e_hostname = NULL; }