]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Fix coverity defects: CID 147548
authorcao <cao.xuewen@zte.com.cn>
Mon, 31 Oct 2016 23:56:10 +0000 (07:56 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 31 Oct 2016 23:56:10 +0000 (16:56 -0700)
CID 147548: Type:Dereference null return value

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: cao.xuewen <cao.xuewen@zte.com.cn>
Closes #5321

include/sys/fs/zfs.h
lib/libshare/libshare.c
lib/libzfs/libzfs_util.c

index d1d0a275d1f56d13580ec3445113805da699aba2..2a630ec53212c569f2a1019f9b8be7f59645a776 100644 (file)
@@ -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"
index 89a4fe9aa9e31740858129a902eee06856509a82..0eb4ae00d823344591027185217a732e316e4971 100644 (file)
@@ -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 {
index ca32e7a7f5c42754687a3118b6b7004978ef0fd1..6f5dae6c3f0afc89ae7790056c1a7b3d754f44b8 100644 (file)
@@ -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);
        }