Commit Graph

327 Commits

Author SHA1 Message Date
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
christos
3157acd0cf PR/47577: Steffen "Daode" Nurpmeso: Refinement to previous to keep always
keep track of the folder when it is updated.
2013-02-20 14:38:13 +00:00
christos
b078433469 PR/47577: Steffen "Daode" Nurpmeso: Keep a resolved folder name together
with a display name in order to keep track of current state when the directory
is changed.
2013-02-19 17:43:32 +00:00
christos
ba2b5111fb PR/47657: Steffen "Daode" Nurpmeso: quoted printable CTE exceeds RFC limit.
- Encapsulated all the content-transfer-encoding stuff in mime_codecs.c
- Replaced calls of strtol(3) with a handcrafted version that allows simple
  error checking by testing the return value. This allows to easily add
  special code to handle illegal QP sequences.
2013-02-14 18:23:45 +00:00
christos
39fb5ccbf5 From: Steffen "Daode" Nurpmeso:
Amend the previous commit to support zone-style RFC 822 dates.
RFC 5322 marks this zone-style as obsolete (obs-zone), but still supports it.
But then, even if you don't wanna support military style single-letter zones,
the UT zone exists and will not be supported by this commit.

The changes here are not strictly correct (since not all possible
single-letter zones are assigned, and only *UT* has two letters),
but which will match all thre possible *obs-zone* forms.
Compiled and tested on a single MBOX.
2013-01-16 15:21:42 +00:00
christos
8fe0b6ad43 PR/47453: Martin Branderburg: Mail (mail, mailx) does not recognize messages
which have RFC 822 format dates.
XXX: Pullup 6
2013-01-15 17:25:42 +00:00
christos
fed1477544 PR/47396: Steffen: mail(1) may falsely use quoted-printable for files with
embedded NULs
2013-01-04 01:54:55 +00:00
christos
ec0bd15985 PR/47395: Steffen: mail(1) unnecessarily uses base64 if a CR without a LF is seen 2013-01-04 01:43:59 +00:00
mbalmer
e3f283b63f Fix misspelling: accommodate is a long enough word to have room for two 'c's
and two 'm's.
2012-12-01 11:41:49 +00:00
christos
79abd5ecae PR/47237: Steffen Nurpmeso: Detect more than 2 pad characters and mark as bad. 2012-11-24 21:40:02 +00:00
christos
de5e815cfc don't check for i and use j. 2012-10-21 22:18:16 +00:00
christos
1db8a1b54a PR/47098: Steffen "Daode" Nurpmeso: mail(1): SEGV with bad globbed file argument 2012-10-21 01:11:23 +00:00