diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/svc/svccfg/svccfg_libscf.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/src/cmd/svc/svccfg/svccfg_libscf.c b/usr/src/cmd/svc/svccfg/svccfg_libscf.c index 95f2fcd8e2..c166aba2ba 100644 --- a/usr/src/cmd/svc/svccfg/svccfg_libscf.c +++ b/usr/src/cmd/svc/svccfg/svccfg_libscf.c @@ -915,8 +915,14 @@ lscf_init() max_scf_len = max_scf_name_len; if (max_scf_pg_type_len > max_scf_len) max_scf_len = max_scf_pg_type_len; - if (max_scf_value_len > max_scf_len) - max_scf_len = max_scf_value_len; + /* + * When a value of type opaque is represented as a string, the + * string contains 2 characters for every byte of data. That is + * because the string contains the hex representation of the opaque + * value. + */ + if (2 * max_scf_value_len > max_scf_len) + max_scf_len = 2 * max_scf_value_len; if (atexit(remove_tempfile) != 0) uu_die(gettext("Could not register atexit() function")); |