Commit Graph

305 Commits

Author SHA1 Message Date
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
christos
0575918243 consistently use warn 2012-10-21 01:10:22 +00:00
christos
a7879b44e9 make sure that signal handlers are always initialized. 2012-06-12 19:03:26 +00:00
christos
5942983d76 set close on exec for all opened files. 2012-04-29 23:50:22 +00:00
joerg
cdaeb35ee5 Mark sasprintf as using a printf-like format. Fix format string to use
all arguments by telling the user what file would be overwritten.
2012-02-28 22:30:44 +00:00
christos
7f5fd4a5cd PR/45842: Henning Petersen: compare fgets with NULL not 0 2012-01-16 17:38:16 +00:00
joerg
6818646ac8 Use __dead 2011-09-16 15:39:25 +00:00
christos
abf73dc18d document non-literal format string 2011-08-16 11:49:17 +00:00
joerg
a5bcf1850f Use proper format strings. 2011-05-24 12:33:22 +00:00
dyoung
c45c4e89a1 Rename sigqueue to sigq to avoid clashing with sigqueue(2). Now this
builds again.
2011-01-10 17:14:38 +00:00
njoly
1adf1b7dc0 Fix sub-section reference. 2010-12-23 20:11:00 +00:00
christos
02bc858973 - fix format print issue. from anon ymous 2010-06-21 19:49:31 +00:00
joerg
06ff5ce94c Explicitly quote |. Don't use .%T outside the scope of .Rs/.Re. 2010-05-14 16:23:42 +00:00
joerg
5180429ad8 Use \e 2010-03-21 13:34:34 +00:00
roy
98eb889579 Userland now builds and uses terminfo instead of termcap.
OK: core@, jdc@
2010-02-03 15:34:37 +00:00
christos
d449716afd error message cleanup
- 1 -> EXIT_FAILURE
- fprintf(stderr, -> warnx(
- better warning messages
2010-01-12 14:45:31 +00:00
christos
b8afdde726 - 1 -> EXIT_FAILURE
- avoid assertion firing when hitting ^D in CC: line.
2010-01-12 14:44:24 +00:00
christos
533d2abbab - 1 -> EXIT_FAILURE
- preallocate child struct, since the signal handler can be called before
  wait_child, and we cannot allocate a child struct there. there is a signal
  race still here if the program exits and the signal handler is called before
  we allocate the struct.
2010-01-12 14:43:31 +00:00
snj
550147bd6a Remove 3rd and 4th clauses in christos' license. OK christos. 2009-10-21 01:07:44 +00:00
christos
1ed23800b4 Don't barf on malformed mime messages (missing mime version). From Anon Ymous 2009-08-28 14:26:50 +00:00
apb
3ac228d1b2 Declare "com" as volatile in execute(), to make it safe to use
across setjmp/longjmp.

Inspired by PR 41255 from Kurt Lidl, but this change makes "com" a
volatile pointer to const non-volatile data, whereas the PR made it a
non-volatile pointer to const volatile data.
2009-07-14 21:15:48 +00:00
lukem
c1ceae17f0 Enable WARNS=4 by default for usr.bin, except for:
awk  bdes  checknr  compile_et  error  gss  hxtool  kgetcred  kinit
	klist  ldd  less  lex  locale  login  m4  man  menuc  mk_cmds
	mklocale  msgc  openssl  rpcgen  rpcinfo  sdiff  spell  ssh
	string2key  telnet  tn3270  verify_krb5_conf  xlint
2009-04-14 22:15:16 +00:00
he
ec30dc689c Do the -Wuninitialized workaround in a way which conforms to our
style guide, and remove a now unneeded LINTED comment.  From private
feedback.
2009-04-13 10:03:58 +00:00