From 277f91b4c63425aa80e113eec5a6638ef7bd183e Mon Sep 17 00:00:00 2001 From: lace <> Date: Tue, 27 Dec 2005 11:48:52 +0000 Subject: [PATCH] Fixed SIGSEGV while bailing out on unsuccessful arguments parsing. --- src/client/fuse/main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/client/fuse/main.c b/src/client/fuse/main.c index 5b942e6..81bbc3e 100644 --- a/src/client/fuse/main.c +++ b/src/client/fuse/main.c @@ -151,6 +151,10 @@ char **sp; captive_standalone_init(); + /* poptGetNextOpt() below requires valid: captive_options */ + captive_options_init(&options); + captive_options=&options; /* for parsing by 'CAPTIVE_POPT_INCLUDE' */ + argv_sp=argv+1; if (*argv_sp && (*argv_sp)[0]!='-') image_filename=*argv_sp++; @@ -172,6 +176,7 @@ char **sp; /* Lethal path but still give chance for "--help" etc. */ /* Do not: POPT_CONTEXT_POSIXMEHARDER * as mount(8) puts there first un-pre-dashed "ro"/"rw" etc. */ + /* poptGetNextOpt() requires valid: captive_options */ if ((context=poptGetContext( PACKAGE, /* name */ argc,(/*en-const*/const char **)argv, /* argc,argv */ @@ -230,9 +235,6 @@ char *s,quote; } } - captive_options_init(&options); - captive_options=&options; /* for parsing by 'CAPTIVE_POPT_INCLUDE' */ - g_assert(!options.sandbox_server_argv); g_assert(!options.sandbox_server_ior); /* captive_options_free(&options) will: g_free(options.sandbox_server_argv); */ -- 1.8.3.1