Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl2/lvm2/dist/libdm/ioctl Handle NULL params, fix ...



details:   https://anonhg.NetBSD.org/src/rev/4983c3f0dd04
branches:  trunk
changeset: 847175:4983c3f0dd04
user:      mlelstv <mlelstv%NetBSD.org@localhost>
date:      Sat Dec 14 09:05:30 2019 +0000

description:
Handle NULL params, fix error paths.

diffstat:

 external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c |  17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diffs (45 lines):

diff -r 62dd48f4a38a -r 4983c3f0dd04 external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c
--- a/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c        Sat Dec 14 07:45:20 2019 +0000
+++ b/external/gpl2/lvm2/dist/libdm/ioctl/libdm_netbsd.c        Sat Dec 14 09:05:30 2019 +0000
@@ -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 @@
                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 @@
                 */
                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);



Home | Main Index | Thread Index | Old Index