diff options
-rw-r--r-- | libtrivfs/fsys-get-options.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libtrivfs/fsys-get-options.c b/libtrivfs/fsys-get-options.c index aa3b3374..53fc485d 100644 --- a/libtrivfs/fsys-get-options.c +++ b/libtrivfs/fsys-get-options.c @@ -18,6 +18,7 @@ along with the GNU Hurd; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <argz.h> #include <hurd/fshelp.h> #include "priv.h" @@ -29,16 +30,22 @@ trivfs_S_fsys_get_options (struct trivfs_control *fsys, char **data, mach_msg_type_number_t *len) { error_t err; - char *argz; - size_t argz_len; + char *argz = 0; + size_t argz_len = 0; if (! fsys) return EOPNOTSUPP; - err = trivfs_get_options (fsys, &argz, &argz_len); + err = argz_add (&argz, &argz_len, program_invocation_name); + if (err) + return err; + + err = trivfs_append_args (fsys, &argz, &argz_len); if (! err) /* Put ARGZ into vm_alloced memory for the return trip. */ err = fshelp_return_malloced_buffer (argz, argz_len, data, len); + else + free (argz); return err; } |