diff options
author | wesolows <none@none> | 2007-09-13 10:10:42 -0700 |
---|---|---|
committer | wesolows <none@none> | 2007-09-13 10:10:42 -0700 |
commit | 3eae19d9cf3390cf5b75e10c9c1945fd36ad856a (patch) | |
tree | 2e7dc09a2b8d857b406d077178dc53207a1d6e15 /usr/src/lib/librestart | |
parent | db30663e794986128c960dc83ff43ca474b68a23 (diff) | |
download | illumos-joyent-3eae19d9cf3390cf5b75e10c9c1945fd36ad856a.tar.gz |
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 <property>
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
Diffstat (limited to 'usr/src/lib/librestart')
-rw-r--r-- | usr/src/lib/librestart/common/librestart.c | 8 |
1 files changed, 5 insertions, 3 deletions
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; |