ash: one "current line = 1" might be missing, fix that
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 14 Aug 2017 17:46:56 +0000 (19:46 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 14 Aug 2017 17:46:56 +0000 (19:46 +0200)
I'm not sure this is necessary, but dash has this init here.
Just in case, do it too.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash.c

index 1917b552c1c39c47b5eec4559d9572d55d48b1a6..224d77633d5581a13fc85b58c023dd0d5bb149b3 100644 (file)
@@ -1229,6 +1229,10 @@ struct strpush {
        int unget;
 };
 
+/*
+ * The parsefile structure pointed to by the global variable parsefile
+ * contains information about the current file being read.
+ */
 struct parsefile {
        struct parsefile *prev; /* preceding file on stack */
        int linno;              /* current line */
@@ -1902,10 +1906,6 @@ nextopt(const char *optstring)
 
 /* ============ Shell variables */
 
-/*
- * The parsefile structure pointed to by the global variable parsefile
- * contains information about the current file being read.
- */
 struct shparam {
        int nparam;             /* # of positional parameters (without $0) */
 #if ENABLE_ASH_GETOPTS
@@ -13603,6 +13603,7 @@ init(void)
 {
        /* we will never free this */
        basepf.next_to_pgetc = basepf.buf = ckmalloc(IBUFSIZ);
+       basepf.linno = 1;
 
        sigmode[SIGCHLD - 1] = S_DFL; /* ensure we install handler even if it is SIG_IGNed */
        setsignal(SIGCHLD);