diff --git a/src/extract.c b/src/extract.c index f74edc7..b98d6c4 100644 --- a/src/extract.c +++ b/src/extract.c @@ -437,10 +437,17 @@ int main (int argc, char *argv[]) error->message); /* howto translate? */ fprintf(stderr, g_option_context_get_help(context, FALSE, NULL)); + return 1; } - if (g_access(driver_filename, R_OK)) { + if (driver_filename == NULL) { + fprintf(stderr, _("Option -a is mandatory. See --help.\n")); + return 1; + } + + if (g_access(driver_filename, R_OK | F_OK)) { g_error(_("Unable to read driver %s."), driver_filename); + return 1; } pathname = g_build_filename(firmware_dir, firmware_filename, NULL); @@ -450,7 +457,7 @@ int main (int argc, char *argv[]) * iSight and thus possibly damaging it. */ digest = get_sha1sum(driver_filename); if (!digest) { - return -1; + return 1; } sha1sum = sha1sum_string(digest);