Check for ctx in default_core_handler()
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 8 Oct 2015 20:15:58 +0000 (16:15 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 14 Oct 2015 22:43:53 +0000 (18:43 -0400)
It's possible for a process to receive an event via sys_notify(), which
will not have a ctx.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/parlib/signal.c

index 23f2f65..b30cd9f 100644 (file)
@@ -74,7 +74,10 @@ static void default_term_handler(int signr, siginfo_t *info, void *ctx)
 static void default_core_handler(int signr, siginfo_t *info, void *ctx)
 {
        fprintf(stderr, "Segmentation Fault (sorry, no core dump yet)\n");
-       print_user_context((struct user_context*)ctx);
+       if (ctx)
+               print_user_context((struct user_context*)ctx);
+       else
+               fprintf(stderr, "No ctx for %s\n", __FUNCTION__);
        if (info) {
                /* ghetto, we don't have access to the PF err, since we only have a few
                 * fields available in siginfo (e.g. there's no si_trapno). */