From 3eae19d9cf3390cf5b75e10c9c1945fd36ad856a Mon Sep 17 00:00:00 2001 From: wesolows Date: Thu, 13 Sep 2007 10:10:42 -0700 Subject: PSARC 2007/177 SMF read-protected property storage PSARC 2007/519 svccfg(1M) restore 6537749 SMF should support read-protection of data 6538452 svccfg delete leaks memory on syntax error with options 6546699 svccfg archive should be able to be reimported 6559692 svccfg fails to import a manifest with an empty 6597168 startd is setting $SMF_METHOD incorrectly 6597173 allocation failure can induce crash in scf_handle_decode_fmri() 6597183 allocation failure can induce crash in scf_simple_app_props_free() 6597190 scf_simple_app_props_get() can return with unset error code 6598922 rc_node_modify_permission_check() calls perm_granted() with rn_lock held --- usr/src/lib/librestart/common/librestart.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'usr/src/lib/librestart/common/librestart.c') diff --git a/usr/src/lib/librestart/common/librestart.c b/usr/src/lib/librestart/common/librestart.c index 88ca2ea53b..0bdafd3062 100644 --- a/usr/src/lib/librestart/common/librestart.c +++ b/usr/src/lib/librestart/common/librestart.c @@ -1069,6 +1069,7 @@ next_val: case SCF_ERROR_HANDLE_MISMATCH: case SCF_ERROR_INVALID_ARGUMENT: + case SCF_ERROR_PERMISSION_DENIED: default: bad_fail("scf_iter_next_value", scf_error()); @@ -1367,6 +1368,7 @@ next_val: case SCF_ERROR_HANDLE_MISMATCH: case SCF_ERROR_INVALID_ARGUMENT: + case SCF_ERROR_PERMISSION_DENIED: bad_fail( "scf_iter_next_value", scf_error()); @@ -2532,7 +2534,7 @@ restarter_get_method_context(uint_t version, scf_instance_t *inst, /* get resource pool */ if (get_astring_val(pg, SCF_PROPERTY_RESOURCE_POOL, cip->vbuf, - cip->vbuf_sz, prop, val) != 0) { + cip->vbuf_sz, prop, val) != 0) { errstr = "Could not get value of resource pool."; goto out; } @@ -2839,9 +2841,9 @@ restarter_set_method_context(struct method_context *cip, const char **fp) * have access to the specified directory. */ if (cip->working_dir != NULL) { - do + do { r = chdir(cip->working_dir); - while (r != 0 && errno == EINTR); + } while (r != 0 && errno == EINTR); if (r != 0) { *fp = "chdir"; ret = errno; -- cgit v1.2.3