OSDN Git Service

fix bug 1087. Fix by Leonid (lly.dev AT gmail.com)
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 21 Feb 2010 00:26:42 +0000 (01:26 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 21 Feb 2010 00:26:42 +0000 (01:26 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c
shell/ash_test/ash-misc/nulltick1.right [new file with mode: 0644]
shell/ash_test/ash-misc/nulltick1.tests [new file with mode: 0755]

index 798d15a..7f14bed 100644 (file)
@@ -4539,7 +4539,7 @@ forkchild(struct job *jp, union node *n, int mode)
        if (mode == FORK_NOJOB          /* is it `xxx` ? */
         && n && n->type == NCMD        /* is it single cmd? */
        /* && n->ncmd.args->type == NARG - always true? */
-        && strcmp(n->ncmd.args->narg.text, "trap") == 0
+        && n->ncmd.args && strcmp(n->ncmd.args->narg.text, "trap") == 0
         && n->ncmd.args->narg.next == NULL /* "trap" with no arguments */
        /* && n->ncmd.args->narg.backquote == NULL - do we need to check this? */
        ) {
@@ -4627,7 +4627,7 @@ forkchild(struct job *jp, union node *n, int mode)
        }
 #if JOBS
        if (n && n->type == NCMD
-        && strcmp(n->ncmd.args->narg.text, "jobs") == 0
+        && n->ncmd.args && strcmp(n->ncmd.args->narg.text, "jobs") == 0
        ) {
                TRACE(("Job hack\n"));
                /* "jobs": we do not want to clear job list for it,
diff --git a/shell/ash_test/ash-misc/nulltick1.right b/shell/ash_test/ash-misc/nulltick1.right
new file mode 100644 (file)
index 0000000..f90b820
--- /dev/null
@@ -0,0 +1,3 @@
+Test 1
+Test 2
+Done
diff --git a/shell/ash_test/ash-misc/nulltick1.tests b/shell/ash_test/ash-misc/nulltick1.tests
new file mode 100755 (executable)
index 0000000..f81923d
--- /dev/null
@@ -0,0 +1,3 @@
+echo Test ` ` 1
+echo Test `</dev/null` 2
+echo Done