summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ptools
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2013-08-21 23:54:45 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2013-08-21 23:54:45 +0000
commit84a6527d59b307f3925d3dbac3728fd0d1db4706 (patch)
tree0f87ef159a57043733b2ad0f861e14d22d635942 /usr/src/cmd/ptools
parent7d7a5b1f6447ad858fd291d2b95da27e7c690325 (diff)
parent2a12f85ad140e332791b4bad1208a734c3f26bf3 (diff)
downloadillumos-joyent-release-20130822.tar.gz
[illumos-gate merge]20130822release-20130822
commit 2a12f85ad140e332791b4bad1208a734c3f26bf3 3946 ::gcore commit 840b2722e5294ae44aa3af6189002f521d7c50e0 3915 Add adjuncts support to the build (fix lint) commit afffa6e9b45cbe9b33943e26568d8ac69b899252 4062 libscf: memory leaks in scf_simple_app_props_get() commit 2fbdf8dbf01ec1c85fcd3827cdf9e9f5f46c4c8a 4061 libzfs: memory leak in iter_dependents_cb() commit 713d6c208802cfbb806329ec0d154b641b80c355 4047 panic from dbuf_free_range() from dmu_free_object() while doing zfs receive
Diffstat (limited to 'usr/src/cmd/ptools')
-rw-r--r--usr/src/cmd/ptools/ppriv/ppriv.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/usr/src/cmd/ptools/ppriv/ppriv.c b/usr/src/cmd/ptools/ppriv/ppriv.c
index a695c1a09b..b696c63eb7 100644
--- a/usr/src/cmd/ptools/ppriv/ppriv.c
+++ b/usr/src/cmd/ptools/ppriv/ppriv.c
@@ -20,7 +20,11 @@
*/
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- *
+ */
+/*
+ * Copyright (c) 2013 by Delphix. All rights reserved.
+ */
+/*
* Program to examine or set process privileges.
*/
@@ -158,9 +162,6 @@ main(int argc, char **argv)
static int
look(char *arg)
{
- static size_t pprivsz = sizeof (prpriv_t);
- static prpriv_t *ppriv;
-
struct ps_prochandle *Pr;
int gcode;
size_t sz;
@@ -168,6 +169,7 @@ look(char *arg)
char *x;
int i;
boolean_t nodata;
+ prpriv_t *ppriv;
procname = arg; /* for perr() */
@@ -179,15 +181,11 @@ look(char *arg)
return (1);
}
- if (ppriv == NULL)
- ppriv = malloc(pprivsz);
-
- if (Ppriv(Pr, ppriv, pprivsz) == -1) {
+ if (Ppriv(Pr, &ppriv) == -1) {
perr(command);
Prelease(Pr, 0);
return (1);
}
-
sz = PRIV_PRPRIV_SIZE(ppriv);
/*
@@ -202,28 +200,20 @@ look(char *arg)
"%s: %s: bad PRNOTES section, size = %lx\n",
command, arg, (long)sz);
Prelease(Pr, 0);
+ free(ppriv);
return (1);
}
- if (sz > pprivsz) {
- ppriv = realloc(ppriv, sz);
-
- if (ppriv == NULL || Ppriv(Pr, ppriv, sz) != sz) {
- perr(command);
- Prelease(Pr, 0);
- return (1);
- }
- pprivsz = sz;
- }
-
if (set) {
privupdate(ppriv, arg);
if (Psetpriv(Pr, ppriv) != 0) {
perr(command);
Prelease(Pr, 0);
+ free(ppriv);
return (1);
}
Prelease(Pr, 0);
+ free(ppriv);
return (0);
}
@@ -298,6 +288,7 @@ look(char *arg)
}
}
Prelease(Pr, 0);
+ free(ppriv);
return (0);
}