svn commit: r354666 - head/usr.sbin/sesutil
Alan Somers
asomers at FreeBSD.org
Tue Nov 12 23:57:58 UTC 2019
Author: asomers
Date: Tue Nov 12 23:57:57 2019
New Revision: 354666
URL: https://svnweb.freebsd.org/changeset/base/354666
Log:
sesutil: fix another memory leak
Instead of calloc()ing (and forgetting to free) in a tight loop, just put
this small array on the stack.
Reported by: Coverity
Coverity CID: 1331665
MFC after: 2 weeks
Sponsored by: Axcient
Modified:
head/usr.sbin/sesutil/sesutil.c
Modified: head/usr.sbin/sesutil/sesutil.c
==============================================================================
--- head/usr.sbin/sesutil/sesutil.c Tue Nov 12 23:09:55 2019 (r354665)
+++ head/usr.sbin/sesutil/sesutil.c Tue Nov 12 23:57:57 2019 (r354666)
@@ -261,19 +261,19 @@ sesled(int argc, char **argv, bool setfault)
break;
}
for (j = 0; j < nobj; j++) {
+ const int devnames_size = 128;
+ char devnames[devnames_size];
+
if (all) {
do_led(fd, objp[j].elm_idx, objp[j].elm_type,
onoff, setfault);
continue;
}
memset(&objdn, 0, sizeof(objdn));
+ memset(devnames, 0, devnames_size);
objdn.elm_idx = objp[j].elm_idx;
- objdn.elm_names_size = 128;
- objdn.elm_devnames = calloc(128, sizeof(char));
- if (objdn.elm_devnames == NULL) {
- close(fd);
- xo_err(EXIT_FAILURE, "calloc()");
- }
+ objdn.elm_names_size = devnames_size;
+ objdn.elm_devnames = devnames;
if (ioctl(fd, ENCIOC_GETELMDEVNAMES,
(caddr_t) &objdn) <0) {
continue;
More information about the svn-src-head
mailing list