linux-user: do not segfault on unkown -d option
authorRiku Voipio <riku.voipio@nokia.com>
Fri, 9 Jan 2009 14:51:54 +0000 (16:51 +0200)
committerRiku Voipio <riku.voipio@nokia.com>
Wed, 14 Jan 2009 14:58:00 +0000 (16:58 +0200)
From: Guillem Jover <guillem@debian.org>

The qemu user emulators (qemu-i386, qemu-ppc, etc) segfault when given
an unknown debug log item.  For example, "qemu-ppc -d foo" segfaults.

Closes: #338289

linux-user/main.c

index 6e905dc..3019f33 100644 (file)
@@ -999,7 +999,7 @@ void cpu_loop (CPUSPARCState *env)
         default:
             printf ("Unhandled trap: 0x%x\n", trapnr);
             cpu_dump_state(env, stderr, fprintf, 0);
-            exit (1);
+            _exit (1);
         }
         process_pending_signals (env);
     }
@@ -1930,7 +1930,7 @@ void cpu_loop (CPUState *env)
         default:
             printf ("Unhandled trap: 0x%x\n", trapnr);
             cpu_dump_state(env, stderr, fprintf, 0);
-            exit (1);
+            _exit (1);
         }
         process_pending_signals (env);
     }
@@ -2268,7 +2268,7 @@ int main(int argc, char **argv, char **envp)
                 for(item = cpu_log_items; item->mask != 0; item++) {
                     printf("%-10s %s\n", item->name, item->help);
                 }
-                exit(1);
+                _exit(1);
             }
             cpu_set_log(mask);
         } else if (!strcmp(r, "s")) {
@@ -2287,7 +2287,7 @@ int main(int argc, char **argv, char **envp)
             if (qemu_host_page_size == 0 ||
                 (qemu_host_page_size & (qemu_host_page_size - 1)) != 0) {
                 fprintf(stderr, "page size must be a power of two\n");
-                exit(1);
+                _exit(1);
             }
         } else if (!strcmp(r, "g")) {
             gdbstub_port = atoi(argv[optind++]);