summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcao <[email protected]>2016-11-01 07:56:10 +0800
committerBrian Behlendorf <[email protected]>2016-10-31 16:56:10 -0700
commit2bac68145f94012d6e41dffb9f4a7faf80a8e107 (patch)
treeac5d389e14e19d98de0821f2054ddb3115b719c0
parentb182ac00aa60d1b61d92d70ea399cd39f966fb31 (diff)
Fix coverity defects: CID 147548
CID 147548: Type:Dereference null return value Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: cao.xuewen <[email protected]> Closes #5321
-rw-r--r--include/sys/fs/zfs.h1
-rw-r--r--lib/libshare/libshare.c6
-rw-r--r--lib/libzfs/libzfs_util.c5
3 files changed, 7 insertions, 5 deletions
diff --git a/include/sys/fs/zfs.h b/include/sys/fs/zfs.h
index d1d0a275d..2a630ec53 100644
--- a/include/sys/fs/zfs.h
+++ b/include/sys/fs/zfs.h
@@ -917,6 +917,7 @@ typedef struct ddt_histogram {
#define ZVOL_DRIVER "zvol"
#define ZFS_DRIVER "zfs"
#define ZFS_DEV "/dev/zfs"
+#define ZFS_SHARETAB "/etc/dfs/sharetab"
/* general zvol path */
#define ZVOL_DIR "/dev"
diff --git a/lib/libshare/libshare.c b/lib/libshare/libshare.c
index 89a4fe9aa..0eb4ae00d 100644
--- a/lib/libshare/libshare.c
+++ b/lib/libshare/libshare.c
@@ -113,7 +113,7 @@ parse_sharetab(sa_handle_impl_t impl_handle) {
char line[512];
char *eol, *pathname, *resource, *fstype, *options, *description;
- fp = fopen("/etc/dfs/sharetab", "r");
+ fp = fopen(ZFS_SHARETAB, "r");
if (fp == NULL)
return;
@@ -170,7 +170,7 @@ update_sharetab(sa_handle_impl_t impl_handle)
sa_share_impl_t impl_share;
int temp_fd;
FILE *temp_fp;
- char tempfile[] = "/etc/dfs/sharetab.XXXXXX";
+ char tempfile[] = ZFS_SHARETAB".XXXXXX";
sa_fstype_t *fstype;
const char *resource;
@@ -215,7 +215,7 @@ update_sharetab(sa_handle_impl_t impl_handle)
fsync(temp_fd);
fclose(temp_fp);
- (void) rename(tempfile, "/etc/dfs/sharetab");
+ (void) rename(tempfile, ZFS_SHARETAB);
}
typedef struct update_cookie_s {
diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c
index ca32e7a7f..6f5dae6c3 100644
--- a/lib/libzfs/libzfs_util.c
+++ b/lib/libzfs/libzfs_util.c
@@ -863,12 +863,13 @@ libzfs_init(void)
return (NULL);
}
- hdl->libzfs_sharetab = fopen("/etc/dfs/sharetab", "r");
+ hdl->libzfs_sharetab = fopen(ZFS_SHARETAB, "r");
if (libzfs_core_init() != 0) {
(void) close(hdl->libzfs_fd);
(void) fclose(hdl->libzfs_mnttab);
- (void) fclose(hdl->libzfs_sharetab);
+ if (hdl->libzfs_sharetab)
+ (void) fclose(hdl->libzfs_sharetab);
free(hdl);
return (NULL);
}