Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/cddl/osnet/dist/lib/libdtrace/common Stop using alloca
details: https://anonhg.NetBSD.org/src/rev/d298529d3c48
branches: trunk
changeset: 943588:d298529d3c48
user: christos <christos%NetBSD.org@localhost>
date: Sun Sep 06 21:49:44 2020 +0000
description:
Stop using alloca
diffstat:
external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diffs (35 lines):
diff -r 844616db92e6 -r d298529d3c48 external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c
--- a/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c Sun Sep 06 21:49:32 2020 +0000
+++ b/external/cddl/osnet/dist/lib/libdtrace/common/dt_options.c Sun Sep 06 21:49:44 2020 +0000
@@ -904,8 +904,9 @@
if (hdr.dofh_loadsz < sizeof (dof_hdr_t))
return (dt_set_errno(dtp, EINVAL));
- dof = alloca(hdr.dofh_loadsz);
- bzero(dof, sizeof (dof_hdr_t));
+ dof = calloc(hdr.dofh_loadsz, 1);
+ if (dof == NULL)
+ return (dt_set_errno(dtp, errno));
dof->dofh_loadsz = hdr.dofh_loadsz;
for (i = 0; i < DTRACEOPT_MAX; i++)
@@ -916,7 +917,10 @@
#else
if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &dof) == -1)
#endif
+ {
+ free(dof);
return (dt_set_errno(dtp, errno));
+ }
for (i = 0; i < dof->dofh_secnum; i++) {
sec = (dof_sec_t *)(uintptr_t)((uintptr_t)dof +
@@ -940,7 +944,7 @@
dtp->dt_options[opt->dofo_option] = opt->dofo_value;
}
-
+ free(dof);
return (0);
}
Home |
Main Index |
Thread Index |
Old Index