diff options
Diffstat (limited to 'libtrivfs/fsys-get-options.c')
-rw-r--r-- | libtrivfs/fsys-get-options.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/libtrivfs/fsys-get-options.c b/libtrivfs/fsys-get-options.c index aa3b3374..4f2d602b 100644 --- a/libtrivfs/fsys-get-options.c +++ b/libtrivfs/fsys-get-options.c @@ -1,6 +1,6 @@ /* Get runtime options - Copyright (C) 1996 Free Software Foundation + Copyright (C) 1996,98,2002 Free Software Foundation, Inc. This file is part of the GNU Hurd. @@ -9,7 +9,7 @@ the Free Software Foundation; either version 2, or (at your option) any later version. - The GNU Hurd is distributed in the hope that it will be useful, + The GNU Hurd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -18,10 +18,10 @@ 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" -#include "fsys_S.h" error_t trivfs_S_fsys_get_options (struct trivfs_control *fsys, @@ -29,16 +29,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); + err = iohelp_return_malloced_buffer (argz, argz_len, data, len); + else + free (argz); return err; } |