[git commit branch/1_36_stable] ash: fix still-broken new mail detection
Denys Vlasenko
vda.linux at googlemail.com
Tue Apr 25 14:47:22 UTC 2023
commit: https://git.busybox.net/busybox/commit/?id=90f5f2a190bca489fac513a150ffab79c6f585b2
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/1_36_stable
padvance() exit condition is return value < 0, not == 0.
After MAIL changing twice, the logic erroneously
concluded that "you have new mail".
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
shell/ash.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/shell/ash.c b/shell/ash.c
index c15bce7ae..9344e4de1 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11264,8 +11264,8 @@ static smallint mail_var_path_changed;
/*
* Print appropriate message(s) if mail has arrived.
* If mail_var_path_changed is set,
- * then the value of MAIL has mail_var_path_changed,
- * so we just update the values.
+ * then the value of MAIL has changed,
+ * so we just update the hash value.
*/
static void
chkmail(void)
@@ -11284,7 +11284,7 @@ chkmail(void)
int len;
len = padvance_magic(&mpath, nullstr, 2);
- if (!len)
+ if (len < 0)
break;
p = stackblock();
if (*p == '\0')
@@ -11305,8 +11305,8 @@ chkmail(void)
if (!mail_var_path_changed && mailtime_hash != new_hash) {
if (mailtime_hash != 0)
out2str("you have mail\n");
- mailtime_hash = new_hash;
}
+ mailtime_hash = new_hash;
mail_var_path_changed = 0;
popstackmark(&smark);
}
More information about the busybox-cvs
mailing list