]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
xenParseXLChannel: Use g_strndup instead of virStrncpy
authorPeter Krempa <pkrempa@redhat.com>
Tue, 2 Mar 2021 12:41:22 +0000 (13:41 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 11 Mar 2021 17:00:35 +0000 (18:00 +0100)
Make the temporary string an autofree-ing pointer and copy the contents.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/libxl/xen_xl.c

index 4113be8cd108180e66d76fa810db50c817f0a1fa..9b2a2fe292be2452c179b3410df758a29f9a86d1 100644 (file)
@@ -1070,7 +1070,7 @@ xenParseXLChannel(virConfPtr conf, virDomainDefPtr def)
     if (list && list->type == VIR_CONF_LIST) {
         list = list->list;
         while (list) {
-            char type[10];
+            g_autofree char *type = NULL;
             char *key;
 
             if ((list->type != VIR_CONF_STRING) || (list->str == NULL))
@@ -1087,11 +1087,8 @@ xenParseXLChannel(virConfPtr conf, virDomainDefPtr def)
 
                 if (STRPREFIX(key, "connection=")) {
                     int len = nextkey ? (nextkey - data) : strlen(data);
-                    if (virStrncpy(type, data, len, sizeof(type)) < 0) {
-                        virReportError(VIR_ERR_INTERNAL_ERROR,
-                                       _("connection %s too big"), data);
-                        goto skipchannel;
-                    }
+                    g_clear_pointer(&type, g_free);
+                    type = g_strndup(data, len);
                 } else if (STRPREFIX(key, "name=")) {
                     int len = nextkey ? (nextkey - data) : strlen(data);
                     VIR_FREE(name);