Commit Graph

338 Commits

Author SHA1 Message Date
kre 9e155b2407 Remove an unnecessary test for NULL (the same thing is done in the
following lines) along with an incorrect return of nothing if it is
found (the following version correctly returns NULL).   Should unbreak build.
2021-12-17 15:29:44 +00:00
christos f3790781fe more protection from unset threads from RVP 2021-12-17 13:14:54 +00:00
christos 9aae377c24 Avoid NULL deref if there is no current thread. From RVP.
Prints "No applicable message"
2021-12-14 21:12:03 +00:00
christos 20358bdc0c PR/56548: RVP: mail(1) segfaults if thread commands are used in ~/.mailrc 2021-12-14 15:13:41 +00:00
andvar f273a7a174 fix various typos, mainly in comments. 2021-12-07 21:37:36 +00:00
rillig 1d6b489c6e usr.bin: remove unnecessary CONSTCOND, lint no longer needs it
Since 2021-01-31, lint no longer requires a CONSTCOND comment in a
do-while-0 statement since this is a common code pattern, especially in
statement-like macros.
2021-11-27 22:16:41 +00:00
msaitoh dc965fb348 s/struture/structure/ in comment. 2021-11-10 16:42:47 +00:00
rillig 38aa9b69ae mail.1: fix duplicate word 2021-11-01 20:40:08 +00:00
rillig 133e932a29 usr.bin: remove unnecessary lint comment CONSTCOND
Since 2021-01-31, lint no longer warns about 'do ... while (0)'.

No functional change.
2021-09-10 21:52:17 +00:00
christos f1b2d7493d Fix weekday parsing; only reset the string when parsing fail and only set
the weekday when parsing succeeds (Steffen Nurpmeso)
2021-04-19 17:49:28 +00:00
christos af632fea2b add O_CLOEXEC 2021-02-17 21:09:39 +00:00
christos b735c4fa8d fix sun2 2019-12-17 19:12:50 +00:00
christos 9ee086ef0e revert previous, don't specialcase NUL string. 2019-12-16 22:55:45 +00:00
christos bf48319541 treat empty variables are unset (Steffen Nurpmeso) 2019-12-15 04:17:38 +00:00
christos ddf3269588 PR/54764: elo: Incorrect '+file' filename completion in mail(1)
Add propel completion stem so that file completion works.
pullup-9
2019-12-14 20:28:02 +00:00
christos 4169a5f39b PR/54765: elo: Minor error in the mail(1) man page (-F description truncated)
pullup-9
2019-12-14 20:23:38 +00:00
christos d13b4aaeef PR/54766: elo: Broken mime-hooks handling in mail(1)
pullup-9.
2019-12-14 20:21:43 +00:00
kamil 77a1ad5f00 Switch the iconv(3) prototype to the POSIX conformant variation
Remove const from the 2nd argument.

const char ** and char ** are incompatible types and it was a cost to keep
the technically incompatible form for a more purist variation. NetBSD was
almost the last alive OS to still keep the const argument (known leftovers:
Minix and Illumos).

Keep the const form for the internal purposes inside citrus and rump.

Address the build breakage fallout in the same change.

There are no ABI changes.

Change accepted by core@.
2019-10-24 18:17:14 +00:00
mrg de11d87641 introduce some common variables for use in GCC warning disables:
GCC_NO_FORMAT_TRUNCATION    -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION  -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW    -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE   -Wno-cast-function-type (GCC 8)

use these to turn off warnings for most GCC-8 complaints.  many
of these are false positives, most of the real bugs are already
commited, or are yet to come.


we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning
is wrong."
2019-10-13 07:28:04 +00:00
wiz 3e49c49077 Remove superfluous Pp. 2019-09-01 19:10:39 +00:00
sevan 822dbc9721 mail was in v1
https://www.bell-labs.com/usr/dmr/www/man12.pdf
2019-09-01 18:24:28 +00:00
christos 1a0087198a PR/54410: fmoon: typos in mail(1) 2019-07-26 13:05:30 +00:00
mrg 684b182f81 compare pointers with NULL not '\0'. 2019-02-01 08:29:03 +00:00
christos 2357fc5dd5 use SUBDIR.roff suggested by uwe@ 2018-06-10 17:55:11 +00:00
christos 45c59656f1 Remove Mail 2018-05-23 01:03:46 +00:00
mrg aa20739e7d fixes for GCC 6.4:
mail's execute() needs a volatile for setjmp().

telnet has a missing {} issue.

isdnd's print_config() has a missing/wrong {} issue, and
its p_q931bc() has inconsistent indentation (but not any
actual problem.)

map-mbone's accept_neighbors2() compares a vs. a instead
of a vs. b.

sysinst's pm_cgd_check() has missing {} issue.

timed's main() has missing {} issue.
2018-02-04 09:01:12 +00:00
christos 4fe1ef32f3 Only open regular files. 2017-11-09 20:27:50 +00:00
wiz 01869ca4d2 Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
christos 3cc72f8888 reset signal handler before returning. 2017-05-02 03:29:14 +00:00
abhinav 5abd78da99 Fix spelling: s/overritten/overwritten 2017-01-23 10:05:25 +00:00
sevan 39bbc68a3b Drop main() prototype. 2016-09-05 00:40:28 +00:00
christos cdc14da57c PR/50746: David Binderman: Check bounds before dereferencing. 2016-02-03 05:18:58 +00:00
christos 1ef9a127cf PR/50360: Thomas Klausner: Fix MKREPRO issue 2015-11-25 01:12:03 +00:00
christos da9061f1c7 fix infinite loop 2015-07-04 22:45:08 +00:00
christos eeda512b55 If we fail 5 times in a row, fail correctly (Steffen Nurpmeso). 2015-07-04 15:09:49 +00:00
christos 7d718eded8 one more stray \n 2015-06-17 00:03:42 +00:00
christos e8283fa6b1 fix wordexp result handling 2015-01-10 17:16:01 +00:00
christos ef0ab4422a fix incorrect arg size computation 2015-01-10 17:16:00 +00:00
christos 2a8765d5a2 Fix various security related issues:
0001. Do not recognize paths, mail folders, and pipes in mail addresses
    by default.  That avoids a direct command injection with syntactically
    valid email addresses starting with |.

    Such addresses can be specified both on the command line, the mail
    headers (with -t) or in address lines copied over from previous
    while replying.

    This was assigned CVE-2014-7844 for some versions of BSD mailx.  It is
    documented behavior for Heirloom mailx, and was mentioned in an old
    technical report about BSD mailx (which does not usually make its way
    into operating system installations).  The patch switches off this
    processing and updates the documentation.

Added expandaddr option to explicitly enable this behavior.

    0002. When invoking sendmail, prevent option processing for email
    address arguments.  This prevents changing e.g. the Postfix
    configuration file in unexpected ways.  This behavior was documented for
    BSD mailx (sort of), but not for Heirloom mailx.  We did not assign a
    CVE to this because it is more of a missing feature, and code invoking
    mailx needs adjustment in the caller as well.

Fixed.

    0003. Make wordexp support mandatory.  (No functional change.)

Fixed (replaced explicit shell pipe implementation).

    0004. Prevent command execution in the expand function, which is IMHO
    unexpected.  (Not really required with patch 1, and there is still
    information disclosure/DoS potential if this expansion occurs.)  This is
    a historic vulnerability already fixed in the Debian package,
    retroactively assigned CVE-2004-2771:

Fixed (as part of the pipe replacement with wordexp).
2014-12-16 19:30:24 +00:00
snj f0a7346d21 src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
2014-10-18 08:33:23 +00:00
christos dbe2f0f9f0 put back ua will fix differently. 2014-10-01 23:41:41 +00:00
christos 24c423bbde There is no \(ua in roff, you really mean \(ha (Circumflex-Accent) aka ^ 2014-09-30 20:54:11 +00:00
dholland b7b7574d3b Reorg docs, part 1:
Move all the reference manuals to subdirs of /usr/share/doc/reference.
We have subdirs ref1-ref9, corresponding to man page sections 1-9.

Everything that's the reference manual for a program (sections 1, 6,
8), C interface (sections 2, 3), driver or file system (section 4),
format or configuration (section 5), or kernel internal interface
(section 9) belongs in here.

Section 7 is a little less clear: some things that might go in section
7 if they were a man page aren't really reference manuals. So I'm only
putting things in reference section 7 that are (to me) clearly
reference material, rather than e.g. tutorials, guides, FAQs, etc.
This obviously leaves some room for debate, especially without first
editing the docs with this distinction in mind, but if people hate
what I've done things can always be moved again.

Note also that while roff macro man pages traditionally go in section
7, I have put all the roff documentation (macros, tools, etc.) in one
place in reference/ref1/roff. This will make it easier to find and
also easier to edit it into some kind of coherent form.
2014-07-05 19:22:41 +00:00
dholland c3ab26950f Rework /usr/share/doc.
Update the <bsd.doc.mk> infrastructure, and update the docs to match
the new infrastructure.

- Build and install text, ps, pdf, and/or html, not roff sources.

- Don't wire the chapter numbers into the build system, or use them in
the installed pathnames. This didn't matter much when the docs were a
museum, but now that we're theoretically going to start maintaining
them again, we're going to add and remove documents periodically and
having the chapter numbers baked in creates a lot of thrashing for no
purpose.

- Specify the document name explicitly, rather than implicitly in a
path. Use this name (instead of other random strings) as the name
of the installed files.

- Specify the document section, which is the subdirectory of
/usr/share/doc to install into.

- Allow multiple subdocuments. (That is, multiple documents in one
output directory.)

- Enumerate the .png files groff emits along with html so they can be
installed.

- Remove assorted hand-rolled rules for running roff and roff widgetry
and add enough variable settings to make these unnecessary. This
includes support for
   - explicit use of soelim
   - refer
   - tbl
   - pic
   - eqn

- Forcibly apply at least minimal amounts of sanity to certain
autogenerated roff files.

- Don't exclude USD.doc, SMM.doc, and PSD.doc directories from the
build, as they now actually do stuff.

Note: currently we can't generate pdf. This turns out to be a
nontrivial problem with no immediate solution forthcoming. So for now,
as a workaround, install compressed .ps as the printable form.
2014-07-05 19:22:02 +00:00
christos 6e28978d84 fix unused variable warnings 2013-10-18 20:47:06 +00:00
christos f49cbbddb9 avoid longjmp clobber. 2013-10-18 20:17:59 +00:00
christos 8e33b891d8 prevent re-entry race and crash 2013-06-28 17:36:18 +00:00
christos d8eb8720ff Document more environment settings. 2013-03-09 19:43:20 +00:00
christos 4b1752e245 undo previous; mail never expanded $ variables in folder. 2013-03-09 19:43:07 +00:00
christos b209824667 since we are calling realpath() earlier now, we need to expand the name
of the folder in case it contained variables like $HOME.
2013-03-06 20:49:20 +00:00