diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Src/Modules/parameter.c | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 14b14af5a..9a4a845e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2000-04-10 Sven Wischnowsky <wischnow@informatik.hu-berlin.de> + * 10614: Src/Modules/parameter.c: more careful with checking index + of $history + * 10609: Src/Zle/compcore.c, Src/Zle/compresult.c, Src/Zle/zle_tricky.c: fix for bashautolist+automenu diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index e8e387a59..6bfe43479 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -1020,6 +1020,8 @@ getpmhistory(HashTable ht, char *name) { Param pm = NULL; Histent he; + char *p; + int ok = 1; pm = (Param) zhalloc(sizeof(struct param)); pm->nam = dupstring(name); @@ -1032,7 +1034,17 @@ getpmhistory(HashTable ht, char *name) pm->ename = NULL; pm->old = NULL; pm->level = 0; - if ((he = quietgethist(atoi(name)))) + + if (*name != '0' || name[1]) { + if (*name == '0') + ok = 0; + else { + for (p = name; *p && idigit(*p); p++); + if (*p) + ok = 0; + } + } + if (ok && (he = quietgethist(atoi(name)))) pm->u.str = dupstring(he->text); else { pm->u.str = dupstring(""); |