New Defects reported by Coverity Scan for libvirt

scan-admin at coverity.com scan-admin at coverity.com
Sat Mar 6 08:48:21 UTC 2021


Hi,

Please find the latest report on new defect(s) introduced to libvirt found with Coverity Scan.

9 new defect(s) introduced to libvirt found with Coverity Scan.
2 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 9 of 9 defect(s)


** CID 314804:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314804:  Memory - corruptions  (OVERRUN)
/src/util/virdevmapper.c: 243 in virDevMapperGetTargetsImpl()
237         if (!virIsDevMapperDevice(path))
238             return 0;
239     
240         if (!(sanitizedPath = virDMSanitizepath(path)))
241             return 0;
242     
>>>     CID 314804:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array "dm.name" of 128 bytes by passing it to a function which accesses it at byte offset 3241737482 using argument "3241737483UL".
243         if (virStrcpy(dm.name, sanitizedPath, DM_TABLE_DEPS) < 0) {
244             virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
245                            _("Resolved device mapper name too long"));
246             return -1;
247         }
248     

** CID 314803:    (OVERRUN)


________________________________________________________________________________________________________
*** CID 314803:    (OVERRUN)
/src/nwfilter/nwfilter_ebiptables_driver.c: 2325 in ebtablesCreateRuleInstance()
2319                     if (printDataType(vars,
2320                                       number, sizeof(number),
2321                                       &rule->p.ipv6HdrFilter.dataICMPTypeStart) < 0)
2322                         return -1;
2323                     lo = true;
2324                 } else {
>>>     CID 314803:    (OVERRUN)
>>>     Overrunning array ""0"" of 2 bytes by passing it to a function which accesses it at byte offset 20 using argument "21UL".
2325                     ignore_value(virStrcpyStatic(number, "0"));
2326                 }
2327     
2328                 virBufferStrcat(&buf, number, ":", NULL);
2329     
2330                 if (HAS_ENTRY_ITEM(&rule->p.ipv6HdrFilter.dataICMPTypeEnd)) {
/src/nwfilter/nwfilter_ebiptables_driver.c: 2353 in ebtablesCreateRuleInstance()
2347                     if (printDataType(vars,
2348                                       number, sizeof(number),
2349                                       &rule->p.ipv6HdrFilter.dataICMPCodeStart) < 0)
2350                         return -1;
2351                     lo = true;
2352                 } else {
>>>     CID 314803:    (OVERRUN)
>>>     Overrunning array ""0"" of 2 bytes by passing it to a function which accesses it at byte offset 20 using argument "21UL".
2353                     ignore_value(virStrcpyStatic(number, "0"));
2354                 }
2355     
2356                 virBufferStrcat(&buf, number, ":", NULL);
2357     
2358                 if (HAS_ENTRY_ITEM(&rule->p.ipv6HdrFilter.dataICMPCodeEnd)) {
/src/nwfilter/nwfilter_ebiptables_driver.c: 2367 in ebtablesCreateRuleInstance()
2361                                       &rule->p.ipv6HdrFilter.dataICMPCodeEnd) < 0)
2362                         return -1;
2363                 } else {
2364                     if (lo)
2365                         ignore_value(virStrcpyStatic(numberalt, number));
2366                     else
>>>     CID 314803:    (OVERRUN)
>>>     Overrunning array ""255"" of 4 bytes by passing it to a function which accesses it at byte offset 20 using argument "21UL".
2367                         ignore_value(virStrcpyStatic(numberalt, "255"));
2368                 }
2369     
2370                 virBufferStrcat(&buf, numberalt, NULL);
2371     
2372                 if (ENTRY_WANT_NEG_SIGN(&rule->p.ipv6HdrFilter.dataICMPTypeStart))

** CID 314802:  Null pointer dereferences  (FORWARD_NULL)


________________________________________________________________________________________________________
*** CID 314802:  Null pointer dereferences  (FORWARD_NULL)
/tests/virtypedparamtest.c: 139 in testTypedParamsAddStringList()
133         int nparams = 0, maxparams = 0, i;
134     
135         const char *values[] = {
136             "foo", "bar", "foobar", NULL
137         };
138     
>>>     CID 314802:  Null pointer dereferences  (FORWARD_NULL)
>>>     Passing "&params" to "virTypedParamsAddStringList", which dereferences null "params".
139         rv = virTypedParamsAddStringList(&params, &nparams, &maxparams, "param",
140                                          values);
141     
142         for (i = 0; i < nparams; i++) {
143             if (STRNEQ(params[i].field, "param") ||
144                 STRNEQ(params[i].value.s, values[i]) ||

** CID 314801:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314801:  Memory - corruptions  (OVERRUN)
/src/util/virlog.c: 949 in virLogOutputToJournald()
943                 nmetadata++;
944             }
945         }
946     
947         memset(&sa, 0, sizeof(sa));
948         sa.sun_family = AF_UNIX;
>>>     CID 314801:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array ""/run/systemd/journal/socket"" of 28 bytes by passing it to a function which accesses it at byte offset 107 using argument "108UL".
949         if (virStrcpyStatic(sa.sun_path, "/run/systemd/journal/socket") < 0)
950             return;
951     
952         memset(&mh, 0, sizeof(mh));
953         mh.msg_name = &sa;
954         mh.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path);

** CID 314800:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314800:  Memory - corruptions  (OVERRUN)
/src/util/virnetdevvportprofile.c: 1054 in virNetDevVPortProfileOp8021Qbg()
1048     
1049         if (!ifname)
1050             return -1;
1051     
1052         vf = PORT_SELF_VF;
1053     
>>>     CID 314800:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array "physdev_ifname" of 16 bytes by passing it to a function which accesses it at byte offset 23.
1054         if (virNetDevVPortProfileGetPhysdevAndVlan(ifname, &physdev_ifindex,
1055                                                    physdev_ifname, &vlanid) < 0) {
1056             return -1;
1057         }
1058     
1059         if (vlanid < 0)

** CID 314799:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314799:  Memory - corruptions  (OVERRUN)
/src/locking/lock_driver_sanlock.c: 205 in virLockManagerSanlockSetupLockspace()
199         char *dir = NULL;
200         int retries = LOCKSPACE_RETRIES;
201     
202         path = g_strdup_printf("%s/%s", driver->autoDiskLeasePath,
203                                VIR_LOCK_MANAGER_SANLOCK_AUTO_DISK_LOCKSPACE);
204     
>>>     CID 314799:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array ""__LIBVIRT__DISKS__"" of 19 bytes by passing it to a function which accesses it at byte offset 47 using argument "48UL".
205         if (virStrcpyStatic(ls.name,
206                             VIR_LOCK_MANAGER_SANLOCK_AUTO_DISK_LOCKSPACE) < 0) {
207             virReportError(VIR_ERR_INTERNAL_ERROR,
208                            _("Lockspace path '%s' exceeded %d characters"),
209                            VIR_LOCK_MANAGER_SANLOCK_AUTO_DISK_LOCKSPACE,
210                            SANLK_PATH_LEN);

** CID 314798:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314798:  Memory - corruptions  (OVERRUN)
/tools/virsh-domain-monitor.c: 2033 in cmdList()
2027     
2028             dom = list->domains[i];
2029             id = virDomainGetID(dom);
2030             if (id != (unsigned int) -1)
2031                 g_snprintf(id_buf, sizeof(id_buf), "%d", id);
2032             else
>>>     CID 314798:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array ""-"" of 2 bytes by passing it to a function which accesses it at byte offset 20 using argument "21UL".
2033                 ignore_value(virStrcpyStatic(id_buf, "-"));
2034     
2035             if (optTable) {
2036                 state = virshDomainState(ctl, dom, NULL);
2037     
2038                 /* Domain could've been removed in the meantime */

** CID 314797:  Memory - corruptions  (OVERRUN)


________________________________________________________________________________________________________
*** CID 314797:  Memory - corruptions  (OVERRUN)
/src/locking/lock_driver_sanlock.c: 614 in virLockManagerSanlockAddDisk()
608             virReportError(VIR_ERR_INTERNAL_ERROR,
609                            _("Lease path '%s' exceeds %d characters"),
610                            path, SANLK_PATH_LEN);
611             return -1;
612         }
613     
>>>     CID 314797:  Memory - corruptions  (OVERRUN)
>>>     Overrunning array ""__LIBVIRT__DISKS__"" of 19 bytes by passing it to a function which accesses it at byte offset 47 using argument "48UL".
614         if (virStrcpy(res->lockspace_name,
615                       VIR_LOCK_MANAGER_SANLOCK_AUTO_DISK_LOCKSPACE,
616                       SANLK_NAME_LEN) < 0) {
617             virReportError(VIR_ERR_INTERNAL_ERROR,
618                            _("Resource lockspace '%s' exceeds %d characters"),
619                            VIR_LOCK_MANAGER_SANLOCK_AUTO_DISK_LOCKSPACE, SANLK_NAME_LEN);

** CID 309208:  Memory - illegal accesses  (USE_AFTER_FREE)


________________________________________________________________________________________________________
*** CID 309208:  Memory - illegal accesses  (USE_AFTER_FREE)
/src/qemu/qemu_driver.c: 7041 in qemuDomainAttachDeviceLive()
7035             virObjectEventPtr event;
7036             event = virDomainEventDeviceAddedNewFromObj(vm, alias);
7037             virObjectEventStateQueue(driver->domainEventState, event);
7038         }
7039     
7040         if (ret == 0)
>>>     CID 309208:  Memory - illegal accesses  (USE_AFTER_FREE)
>>>     Calling "qemuDomainUpdateDeviceList" dereferences freed pointer "driver->config".
7041             ret = qemuDomainUpdateDeviceList(driver, vm, QEMU_ASYNC_JOB_NONE);
7042     
7043         return ret;
7044     }
7045     
7046     


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yqXyKjvBooc6PgQklkMPQjdETL0zD-2BwwS2MT3CUz0PGk4uLnDSo8-2B2mZ3lSeSytwjA-3DWk67_CkO38-2FnXVYPAlDbR1ZxdHNqvqoSWeUuqu9763V-2FVMwztTRW9SwzMA7gvMmx8ApKh8ua0DuU-2FtFVBwT9JMKY-2Fn40AZgff8hsDCC1SVp6PVmuQk-2BMOLXh25wBXN8PizbFUNIK9MxZbPeKl3xeVKnjrJTuahOeDa5J-2FUzR-2BqDeeRd6s5vpF2GpIneTV7kt-2BepGTzX-2FyXr11Niu5JtuwzlIrunkSyRENs-2FQ4lDO-2FQNa8nC0-3D




More information about the Libvirt-ci mailing list