Commit Graph

334 Commits

Author SHA1 Message Date
Garance A Drosehn
46bfa198cf Fix end-of-line issues that can come up when `lpq' reads information
about a queue from a remote host.  That remote host may use \r, \r\n,
or \n\r as the line-ending character.  In some cases the remote host
will write a single line of information without *any* EOL sequence.

Translate all the non-unix EOL's to the standard newline, and make
sure the final line includes a terminating newline.  Logic is also
added to translate all unprintable characters to '?', but that is
#if-ed out for now.

PR:		bin/104731
MFC after:	3 weeks
2009-06-24 16:57:33 +00:00
Brooks Davis
54404cfb13 In preparation for raising NGROUPS and NGROUPS_MAX, change base
system callers of getgroups(), getgrouplist(), and setgroups() to
allocate buffers dynamically.  Specifically, allocate a buffer of size
sysconf(_SC_NGROUPS_MAX)+1 (+2 in a few cases to allow for overflow).

This (or similar gymnastics) is required for the code to actually follow
the POSIX.1-2008 specification where {NGROUPS_MAX} may differ at runtime
and where getgroups may return {NGROUPS_MAX}+1 results on systems like
FreeBSD which include the primary group.

In id(1), don't pointlessly add the primary group to the list of all
groups, it is always the first result from getgroups().  In principle
the old code was more portable, but this was only done in one of the two
places where getgroups() was called to the overall effect was pointless.

Document the actual POSIX requirements in the getgroups(2) and
setgroups(2) manpages.  We do not yet support a dynamic NGROUPS, but we
may in the future.

MFC after:	2 weeks
2009-06-19 15:58:24 +00:00
Brian Somers
a0347c7148 Add -m and -t options.
PR:		129554
Submitted by:	gavin
MFC after:	3 weeks
2009-06-14 06:47:21 +00:00
Bernd Walter
ee9069d1d9 use bigger local variable to calculate free space
int overflows at 1T free space
2008-09-01 12:32:40 +00:00
Kevin Lo
784bddbc5b Cleanup of userland __P use 2007-11-07 10:53:41 +00:00
Kevin Lo
d069140339 Use sizeof() for calculating the buffer size instead of hard-coded values. 2007-03-06 09:32:41 +00:00
Yaroslav Tykhiy
6884810944 Obey MK_INET6_SUPPORT. 2006-07-27 14:52:12 +00:00
Garance A Drosehn
ae39ffc92e Fix checking of the "lock" file in the spool directory for a queue,
so that the checking will wind up with the correct mode-bits in
the case where the initial open() of that lock file will create it.
Due to this bug, the first job ever sent to a queue could leave
that queue in a "printing is disabled" state.

PR:		93469
Submitted by:	Michael Szklarski of kco.com.pl
MFC after:	1 week
2006-07-07 01:12:26 +00:00
Garance A Drosehn
1f6676cf8f Rever the previous changes. It turns out that it perfectly correct
for a makefile to set 'NO_MAN=' when the makefile is for a program
that will not create a man page.

Based on reaction from:		ru bde
2006-03-09 19:52:44 +00:00
Garance A Drosehn
e325eb526c Switch these makefiles to use 'MAN=' to indicate they will not generate
a man page, instead of 'NO_MAN='.  'NO_MAN=' is something users would
set, not something a makefile should be using.

Based on comments by:	des
2006-03-08 22:28:12 +00:00
Stefan Farfeleder
6b6c96661e Use the new name H_SETSIZE instead of the old H_EVENT to set the history
size.

PR:		86355
Approved by:	gad
2005-10-19 16:37:52 +00:00
Dag-Erling Smørgrav
ee66677a7a Remove kludges intended to support src trees with partial obj trees.
Discussed with:	ru
2005-06-10 06:12:53 +00:00
Hajimu UMEMOTO
9ccf2f38c1 NI_WITHSCOPEID cleanup
Reviewed by:	gad
2005-05-13 16:43:28 +00:00
Xin LI
943b456e6a MFS5: Minor style(9) tweak. 2005-02-22 02:56:42 +00:00
Xin LI
c7cc259656 Be more careful when doing el_parse() - only do it when el is
properly initialized, that happens when lpc is called from a tty.
Without this change, it's possible to get SIGSEGV simply doing:
	echo "..:" | lpc

Reported by:	Wojciech A. Koszek <dunstan at freebsd czest pl>
PR:		77462 (patch rewritten by myself)
MFC After:	1 week
2005-02-15 10:23:01 +00:00
Ruslan Ermilov
0227791b40 Expand *n't contractions. 2005-02-13 22:25:33 +00:00
Ruslan Ermilov
2bae942814 Fixed .Xr call. 2005-01-21 09:07:47 +00:00
Ruslan Ermilov
59a3c79da6 Sort sections. 2005-01-18 20:02:45 +00:00
Garance A Drosehn
c547dbe854 Fix so all parts of lpd, lpc, lpq, and lprm will use the same algorithm
for calculating the job number for a job based on the control-file name.
We might receive cf-files named by other implementations of lpr, where
the job number shown by lpq would not match the job number that other
commands expected for the same name.

This also uses a newer algorithm for determining a job number, to avoid
problems caused when a control-file is named using an IP address, instead
of the hostname.

This also moved the declaration if isowner() from lp.h to rmjob.c.  When I
went to change the parameters, I noticed that rmjob.c was the only source
file which uses it.

MFC after:	2 weeks
2004-12-31 00:36:28 +00:00
Garance A Drosehn
e357c6ec8e Do more extensive checking of the userid field which is read in from the
control-file for each print job.  This is partially because the previous
checks still let through some characters which would cause trouble for
other applications which try to process the resulting userid -- such as
accounting programs.

But the main reason is to handle the case where some remote host sends a
print job where the given userid is an uppercase-version of the real userid.
For that case, lpd will now check for uppercase letters in the userid.  If
there are any, it will check to see if the given userid (with the uppercase
letters) is a valid one.  If it is *not* valid, then lpd will change the
userid to all-lowercase right when the job is received.

MFC after:	2 weeks
2004-12-31 00:18:42 +00:00
Ruslan Ermilov
e653b48c80 Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by:	core
2004-12-21 08:47:35 +00:00
Garance A Drosehn
a6ed151d3c Call umask() before opening the lock-file for a queue, to make sure
the file will be created with the right access, if the call to open()
does create it.  Also fix the other call to umask() to turn off
"write others", just as a matter of general safety.

PR:		74418
MFC after:	4 days
2004-12-19 05:14:29 +00:00
Garance A Drosehn
bea5945e6f When printing a data file received from some other host, check to make
sure the data file has been completely transfered before starting to
print it.  This is needed because some implementations of lpr will send
the control-file for a print job before sending the matching data-files,
and that can cause problems if the receiving host is a busy print-server.

MFC after:	2 weeks
2004-12-17 01:54:50 +00:00
Ruslan Ermilov
a35d88931c For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
Poul-Henning Kamp
eb7b5f46a3 Stop on write error. 2004-09-27 08:24:05 +00:00
Ruslan Ermilov
455fb174df Eliminated double whitespace. 2004-07-03 18:35:53 +00:00
Ruslan Ermilov
07bfccd71e Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
Ruslan Ermilov
4b6c8c6498 Fixed spelling of the document date. 2004-07-02 18:00:03 +00:00
Ruslan Ermilov
2cae6bce15 Removed redundant mdoc(7) macro calls. 2004-06-05 20:21:43 +00:00
Tim Kientzle
954c1f5807 Clarify the "lp" description to mention port@host syntax.
Suggested by: NetBSD man page
2004-02-19 18:55:55 +00:00
Peter Wemm
7ed21d3224 Fix a warning about mismatched pointers. A pointer to "void *" is not the
same as a pointer to "char *".  Tell the compiler this is ok.
2003-10-26 03:01:24 +00:00
Tim J. Robbins
1a7c9b7f5e Fix two buffer overflows caused by off-by-one errors: avoid writing a null
character 1 byte past the end of cmdline[] when libedit is being used for
input, and avoid writing a null pointer 1 element past the end of margv[].

Reviewed by:		gad
2003-10-13 07:24:22 +00:00
Garance A Drosehn
0de95e161e Minimal update to make it easier to increase the buffer-size lpd uses
when reading/writing spool files.  I intend to do a more elaborate
version, but I want to get this much in before 4.9-release.  As written,
this results in no change to the object code.

Submitted by:	John-Mark Gurney
Reviewed by:	/sbin/md5
MFC after:	4 days
2003-08-21 03:43:48 +00:00
Garance A Drosehn
53953407b6 Use STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO in a few more
places (replacing constants 0, 1 & 2).

Noticed by:
Reviewed by:	md5
MFC after:	4 days
2003-08-13 20:31:33 +00:00
Garance A Drosehn
7c558d080c Remove a 'From:' that snuck into an sccsid comment line as part of -v1.3 2003-08-01 00:06:41 +00:00
Christian Brueffer
7471fcb94e Fix a grammar bogon and a typo
Submitted by:	Warren Block <wblock@wonkity.com>
MFC after:	3 days
2003-07-17 07:29:20 +00:00
Garance A Drosehn
8e36ed92f2 (Hopefully) Last set of changes so all of lpr uses __FBSDID() for
setting rcsids, and uses a consistent format for 'sccsid' lines.

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-15 08:48:30 +00:00
Garance A Drosehn
c49759e23b More changes to use __FBSDID() for setting rcsids, and fix the
format of 'sccsid' lines so they consistently match style(9).
A minor Makefile change is needed so lptest.c can find lp.cdefs.h.

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-15 08:45:06 +00:00
Garance A Drosehn
6d261443e1 More changes to use __FBSDID() for setting rcsids, and fix the
format of 'sccsid' lines so they consistently match style(9)
Also the 'sccsid' line is formatted to match style(9), and
a 'From:' is removed so the sccsid returns to what it was back
in the days of '-r CSRG' (1996).

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-15 08:40:31 +00:00
Garance A Drosehn
fdc632c823 More changes to use __FBSDID() for setting rcsids. For the filter
programs, minor Makefile changes are needed to find lp.cdefs.h.
For lpf.c, the 'sccsid' line is formatted to match style(9), and
a 'From:' is removed so the sccsid returns to what it was back
in the days of '-r CSRG' (1994).

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-15 07:01:01 +00:00
Garance A Drosehn
c44a6dcebd More changes to use __FBSDID() for setting rcsids, and fix the
format of 'sccsid' lines so they consistently match style(9)
guidelines.  Note that this means you will have to add '-a' to
the 'strings' command when searching for rcs ids, eg:
     strings -a /usr/sbin/lpc | grep '$FreeBSD'

Reviewed by:	discussed on cvs-src & with bde and obrien
MFC after:	15 days
2003-07-14 22:24:28 +00:00
Garance A Drosehn
b7fd86992c Get the 'sccsid' lines even closer to correct style(9) form. The
'#ifdef lint/#endif' around the lines should not have been removed.
Also add blank lines where one (per file) was missing.

Reviewed by:	First part noticed by bde, blank lines noticed by me
MFC after:	15 days
2003-07-14 20:20:58 +00:00
Garance A Drosehn
1ef420f7f4 Get the 'sccsid' for this to match the original lines you would
get from '-r CSRG', instead of having that sccsid as a comment.
(this is the sccsid from 1996 -- there have been many changes to
printcap.c since then!)

MFC after:	15 days
2003-07-14 20:17:55 +00:00
Garance A Drosehn
a6381ce166 Get the 'sccsid' lines even closer to correct style(9) form. The
'#ifdef lint/#endif' around the lines should not have been removed.

Reviewed by:	noticed by bde
MFC after:	15 days
2003-07-14 19:59:33 +00:00
Garance A Drosehn
055c90456e More changes to use __FBSDID() for setting rcsids, and fix the
format of 'sccsid' lines so they consistently match style(9)
guidelines.  Inspired by recent update to lpd.c by charnier.

Reviewed by:	discussed on cvs-src & with bde and obrien
MFC after:	15 days
2003-07-14 15:54:41 +00:00
Garance A Drosehn
1f589b4737 Take advantage of the common_source/lp.cdefs.h file to change lpr
source to use __FBSDID() for setting rcsids.  Also fix the format
of 'sccsid' lines to consistently match style(9) guidelines.

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-14 05:15:21 +00:00
Garance A Drosehn
b9ec9b4d77 Introduce a new lp.cdefs.h file, which will be used to make it
somewhat easier to build this lpr on other operating systems.
This simply includes <sys/cdefs.h> when that is appropriate,
and then checks for any cdefs-ish macros that lpr uses, and
defines them if they don't already exist.  This is only a start
at making freebsd's lpr less of a hassle to port.  It is mainly
added so all of lpr can be changed to use the __FBSDID() macro,
without making it *more* of a hassle to build on other OS's.

Reviewed by:	discussed with bde and obrien
MFC after:	15 days
2003-07-14 05:13:55 +00:00
Philippe Charnier
54ede02d10 add FBSDID 2003-07-06 12:44:11 +00:00
Garance A Drosehn
ce4d8747fa We don't need two $FreeBSD$'s. Remove the older one. 2003-06-21 05:59:59 +00:00
Garance A Drosehn
394fd40fa3 Minor improvement to some debugging code that is probably used by no one
but me (it's usually #ifdef-ed out).

MFC after:	1 week
2003-06-12 03:49:40 +00:00