]> git.ozlabs.org Git - petitboot/blobdiff - discover/paths.c
discover: Properly handle return values
[petitboot] / discover / paths.c
index 5e577ebc7baeee7b96871339acbb6279fcc3cb56..c25671b17a6a22404600da2a64cc9febca93f84f 100644 (file)
@@ -86,7 +86,7 @@ static void load_url_process_exit(struct process *process)
 
        if (result->status == LOAD_CANCELLED) {
                load_url_result_cleanup_local(result);
-       } else if (process->exit_status == 0) {
+       } else if (process_exit_ok(process)) {
                result->status = LOAD_OK;
        } else {
                result->status = LOAD_ERROR;
@@ -131,7 +131,10 @@ static void load_process_to_local_file(struct load_task *task,
                task->result->status = rc ? LOAD_ERROR : LOAD_ASYNC;
        } else {
                rc = process_run_sync(task->process);
-               task->result->status = rc ? LOAD_ERROR : LOAD_OK;
+               if (rc || !process_exit_ok(task->process))
+                       task->result->status = LOAD_ERROR;
+               else
+                       task->result->status = LOAD_OK;
                process_release(task->process);
                task->process = NULL;
        }
@@ -217,15 +220,16 @@ static enum tftp_type check_tftp_type(void *ctx)
        const char *argv[] = { pb_system_apps.tftp, "-V", NULL };
        struct process *process;
        enum tftp_type type;
+       int rc;
 
        process = process_create(ctx);
        process->path = pb_system_apps.tftp;
        process->argv = argv;
        process->keep_stdout = true;
        process->add_stderr = true;
-       process_run_sync(process);
+       rc = process_run_sync(process);
 
-       if (!process->stdout_buf || process->stdout_len == 0) {
+       if (rc || !process->stdout_buf || process->stdout_len == 0) {
                pb_log("Can't check TFTP client type!\n");
                type = TFTP_TYPE_BROKEN;
 
@@ -307,8 +311,9 @@ static void load_wget(struct load_task *task, int flags)
                pb_system_apps.wget,
                "-O",
                NULL, /* 2: local file */
-               NULL,
-               NULL,
+               NULL, /* 3 (optional): --quiet */
+               NULL, /* 4 (optional): --no-check-certificate */
+               NULL, /* 5: URL */
                NULL,
        };
        int i;