diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2023-04-03 14:31:18 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2023-04-03 14:41:01 +0200 |
| commit | 7ababc3e3cd44cb51ad1b0183f7fe30df0fb3cbf (patch) | |
| tree | 1781890e3272c69a674c7910161a01be7c3ecd5d /shell | |
| parent | 2860b2530e7391b52fc6f0d500981e78a4618551 (diff) | |
| download | busybox-w32-7ababc3e3cd44cb51ad1b0183f7fe30df0fb3cbf.tar.gz busybox-w32-7ababc3e3cd44cb51ad1b0183f7fe30df0fb3cbf.tar.bz2 busybox-w32-7ababc3e3cd44cb51ad1b0183f7fe30df0fb3cbf.zip | |
ash: fix still-broken new mail detection
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@googlemail.com>
Diffstat (limited to 'shell')
| -rw-r--r-- | shell/ash.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/shell/ash.c b/shell/ash.c index 55c0acc16..f057b8963 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
| @@ -11265,8 +11265,8 @@ static smallint mail_var_path_changed; | |||
| 11265 | /* | 11265 | /* |
| 11266 | * Print appropriate message(s) if mail has arrived. | 11266 | * Print appropriate message(s) if mail has arrived. |
| 11267 | * If mail_var_path_changed is set, | 11267 | * If mail_var_path_changed is set, |
| 11268 | * then the value of MAIL has mail_var_path_changed, | 11268 | * then the value of MAIL has changed, |
| 11269 | * so we just update the values. | 11269 | * so we just update the hash value. |
| 11270 | */ | 11270 | */ |
| 11271 | static void | 11271 | static void |
| 11272 | chkmail(void) | 11272 | chkmail(void) |
| @@ -11285,7 +11285,7 @@ chkmail(void) | |||
| 11285 | int len; | 11285 | int len; |
| 11286 | 11286 | ||
| 11287 | len = padvance_magic(&mpath, nullstr, 2); | 11287 | len = padvance_magic(&mpath, nullstr, 2); |
| 11288 | if (!len) | 11288 | if (len < 0) |
| 11289 | break; | 11289 | break; |
| 11290 | p = stackblock(); | 11290 | p = stackblock(); |
| 11291 | if (*p == '\0') | 11291 | if (*p == '\0') |
| @@ -11306,8 +11306,8 @@ chkmail(void) | |||
| 11306 | if (!mail_var_path_changed && mailtime_hash != new_hash) { | 11306 | if (!mail_var_path_changed && mailtime_hash != new_hash) { |
| 11307 | if (mailtime_hash != 0) | 11307 | if (mailtime_hash != 0) |
| 11308 | out2str("you have mail\n"); | 11308 | out2str("you have mail\n"); |
| 11309 | mailtime_hash = new_hash; | ||
| 11310 | } | 11309 | } |
| 11310 | mailtime_hash = new_hash; | ||
| 11311 | mail_var_path_changed = 0; | 11311 | mail_var_path_changed = 0; |
| 11312 | popstackmark(&smark); | 11312 | popstackmark(&smark); |
| 11313 | } | 11313 | } |
