git: df16cbdcf192 - main - mail: remove the SIGHUP handler from lex.c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 14 May 2025 19:20:47 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=df16cbdcf1927200eb910c1874faee6f3d8b9a97
commit df16cbdcf1927200eb910c1874faee6f3d8b9a97
Author: Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2025-05-14 19:20:16 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2025-05-14 19:20:34 +0000
mail: remove the SIGHUP handler from lex.c
If the command is simply going to exit without doing any cleanup, then
an immediate exit(3) does not add any value and in-fact obscures that
the program was terminated by a signal.
This is motivated by POSIX conformance requirements, but it's also a
little bit of a tidy-up. Some investigation into the history of mail(1)
shows that, at one point, hangup() would attempt to save messages into
mbox before exiting. It was later transformed into a simple exit() and
likely could have been GC'd at that point.
Reviewed by: des, emaste, ivy
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D50247
---
usr.bin/mail/extern.h | 1 -
usr.bin/mail/lex.c | 13 -------------
2 files changed, 14 deletions(-)
diff --git a/usr.bin/mail/extern.h b/usr.bin/mail/extern.h
index efcba2141512..6eea9c1f1f88 100644
--- a/usr.bin/mail/extern.h
+++ b/usr.bin/mail/extern.h
@@ -131,7 +131,6 @@ int getrawlist(char *, char **, int);
uid_t getuserid(char *);
int grabh(struct header *, int);
int group(void *);
-void hangup(int);
int hash(const char *);
void hdrstop(int);
int headers(void *);
diff --git a/usr.bin/mail/lex.c b/usr.bin/mail/lex.c
index 1043dd2d4706..2d86a17c13e9 100644
--- a/usr.bin/mail/lex.c
+++ b/usr.bin/mail/lex.c
@@ -199,8 +199,6 @@ commands(void)
if (!sourcing) {
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
(void)signal(SIGINT, intr);
- if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
- (void)signal(SIGHUP, hangup);
(void)signal(SIGTSTP, stop);
(void)signal(SIGTTOU, stop);
(void)signal(SIGTTIN, stop);
@@ -567,17 +565,6 @@ stop(int s)
}
}
-/*
- * Branch here on hangup signal and simulate "exit".
- */
-void
-hangup(int s __unused)
-{
-
- /* nothing to do? */
- exit(1);
-}
-
/*
* Announce the presence of the current Mail version,
* give the message count, and print a header listing.