diff options
author | Keith M Wesolowski <wesolows@foobazco.org> | 2013-08-21 23:54:45 +0000 |
---|---|---|
committer | Keith M Wesolowski <wesolows@foobazco.org> | 2013-08-21 23:54:45 +0000 |
commit | 84a6527d59b307f3925d3dbac3728fd0d1db4706 (patch) | |
tree | 0f87ef159a57043733b2ad0f861e14d22d635942 /usr/src/cmd/ptools | |
parent | 7d7a5b1f6447ad858fd291d2b95da27e7c690325 (diff) | |
parent | 2a12f85ad140e332791b4bad1208a734c3f26bf3 (diff) | |
download | illumos-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.c | 31 |
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); } |