Module Name:    src
Committed By:   mlelstv
Date:           Sat Dec 14 09:05:30 UTC 2019

Modified Files:
        src/external/gpl2/lvm2/dist/libdm/ioctl: libdm_netbsd.c

Log Message:
Handle NULL params, fix error paths.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
    src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c
diff -u src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c:1.7 src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c:1.8
--- src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c:1.7	Tue Feb  8 03:26:12 2011
+++ src/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c	Sat Dec 14 09:05:30 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: libdm_netbsd.c,v 1.7 2011/02/08 03:26:12 haad Exp $        */
+/*      $NetBSD: libdm_netbsd.c,v 1.8 2019/12/14 09:05:30 mlelstv Exp $        */
 
 /*
  * Copyright (c) 1996, 1997, 1998, 1999, 2002 The NetBSD Foundation, Inc.
@@ -345,9 +345,10 @@ dm_table_status(libdm_task_t task, struc
 		type = libdm_table_get_target(table);
 		params = libdm_table_get_params(table);
 
-		if (params != NULL)
-			plen = strlen(params) + 1;
+		if (params == NULL)
+			params = "";
 
+		plen = strlen(params) + 1;
 		rec_size = sizeof(struct dm_target_spec) + plen;
 
 		/*
@@ -357,17 +358,17 @@ dm_table_status(libdm_task_t task, struc
 		 */
 		next += rec_size;
 
-		if (rec_size > dmi->data_size)
+		if (rec_size > dmi->data_size) {
+			libdm_table_destroy(table);
+			libdm_iter_destroy(iter);
 			return -ENOMEM;
+		}
 
 		dmts->next = next;
 		strlcpy(dmts->target_type, type, DM_MAX_TYPE_NAME);
 		params_start = (char *)dmts + sizeof(struct dm_target_spec);
 
-		if (params != NULL)
-			strlcpy(params_start, params, plen);
-		else
-			params_start = "\0";
+		strlcpy(params_start, params, plen);
 
 		odmts = dmts;
 		dmts = (struct dm_target_spec *)((uint8_t *)dmts + rec_size);

Reply via email to