259065 |
07-Dec-2013 |
gjb |
- Copy stable/10 (r259064) to releng/10.0 as part of the 10.0-RELEASE cycle. - Update __FreeBSD_version [1] - Set branch name to -RC1
[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so start releng/10.0 at '100' so the branch is started with a value ending in zero.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
255219 |
05-Sep-2013 |
pjd |
Change the cap_rights_t type from uint64_t to a structure that we can extend in the future in a backward compatible (API and ABI) way.
The cap_rights_t represents capability rights. We used to use one bit to represent one right, but we are running out of spare bits. Currently the new structure provides place for 114 rights (so 50 more than the previous cap_rights_t), but it is possible to grow the structure to hold at least 285 rights, although we can make it even larger if 285 rights won't be enough.
The structure definition looks like this:
struct cap_rights { uint64_t cr_rights[CAP_RIGHTS_VERSION + 2]; };
The initial CAP_RIGHTS_VERSION is 0.
The top two bits in the first element of the cr_rights[] array contain total number of elements in the array - 2. This means if those two bits are equal to 0, we have 2 array elements.
The top two bits in all remaining array elements should be 0. The next five bits in all array elements contain array index. Only one bit is used and bit position in this five-bits range defines array index. This means there can be at most five array elements in the future.
To define new right the CAPRIGHT() macro must be used. The macro takes two arguments - an array index and a bit to set, eg.
#define CAP_PDKILL CAPRIGHT(1, 0x0000000000000800ULL)
We still support aliases that combine few rights, but the rights have to belong to the same array element, eg:
#define CAP_LOOKUP CAPRIGHT(0, 0x0000000000000400ULL) #define CAP_FCHMOD CAPRIGHT(0, 0x0000000000002000ULL)
#define CAP_FCHMODAT (CAP_FCHMOD | CAP_LOOKUP)
There is new API to manage the new cap_rights_t structure:
cap_rights_t *cap_rights_init(cap_rights_t *rights, ...); void cap_rights_set(cap_rights_t *rights, ...); void cap_rights_clear(cap_rights_t *rights, ...); bool cap_rights_is_set(const cap_rights_t *rights, ...);
bool cap_rights_is_valid(const cap_rights_t *rights); void cap_rights_merge(cap_rights_t *dst, const cap_rights_t *src); void cap_rights_remove(cap_rights_t *dst, const cap_rights_t *src); bool cap_rights_contains(const cap_rights_t *big, const cap_rights_t *little);
Capability rights to the cap_rights_init(), cap_rights_set(), cap_rights_clear() and cap_rights_is_set() functions are provided by separating them with commas, eg:
cap_rights_t rights;
cap_rights_init(&rights, CAP_READ, CAP_WRITE, CAP_FSTAT);
There is no need to terminate the list of rights, as those functions are actually macros that take care of the termination, eg:
#define cap_rights_set(rights, ...) \ __cap_rights_set((rights), __VA_ARGS__, 0ULL) void __cap_rights_set(cap_rights_t *rights, ...);
Thanks to using one bit as an array index we can assert in those functions that there are no two rights belonging to different array elements provided together. For example this is illegal and will be detected, because CAP_LOOKUP belongs to element 0 and CAP_PDKILL to element 1:
cap_rights_init(&rights, CAP_LOOKUP | CAP_PDKILL);
Providing several rights that belongs to the same array's element this way is correct, but is not advised. It should only be used for aliases definition.
This commit also breaks compatibility with some existing Capsicum system calls, but I see no other way to do that. This should be fine as Capsicum is still experimental and this change is not going to 9.x.
Sponsored by: The FreeBSD Foundation
|
253457 |
18-Jul-2013 |
pjd |
Close uniq(1) in the capability mode sandbox and limit descriptors using capability rights.
|
227193 |
06-Nov-2011 |
ed |
Add missing static keywords to uniq(1)
|
216370 |
11-Dec-2010 |
joel |
Remove the advertising clause from UCB copyrighted files in usr.bin. This is in accordance with the information provided at ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
Also add $FreeBSD$ to a few files to keep svn happy.
Discussed with: imp, rwatson
|
204927 |
09-Mar-2010 |
ache |
Add SIZE_MAX overflow check
|
204876 |
08-Mar-2010 |
ache |
1) Reimplement (differently) unlimited line length restricted in prev. commit.
2) Honor missing the very last \n (if absent) on output.
|
204811 |
06-Mar-2010 |
ache |
Remove vestiges of old %-format which prevents build on amd64
|
204803 |
06-Mar-2010 |
ache |
1) Rewrite input processing to not exit with error on the first EILSEQ found in the input data but fallback to "binary equal" check instead.
POSIX says: "The input file shall be a text file", nothing more, so the text file with illegal sequence is valid input. BTW, GNU sort does not fails on EILSEQ too.
2) Speedup input processing a bit in complex cases like skipping fields, chars or ignore case.
3) Enforce the implied LINE_MAX limit (from POSIX definition of "text file" and POSIX uniq(1) description).
|
200633 |
17-Dec-2009 |
jh |
Sync getline() with comm(1):
- Prevent overflowing of the buffer length variable in getline() by limiting its maximum value. - Exit if reallocf(3) fails in getline(). Failure was silently considered as end-of-file.
Reviewed by: ghelmer Approved by: trasz (mentor)
|
200632 |
17-Dec-2009 |
jh |
The input line length limit mentioned on the manual page was removed by r176119.
Approved by: trasz (mentor)
|
176119 |
08-Feb-2008 |
ghelmer |
Fix truncation of lines at LINE_MAX characters by dynamically extending line buffers.
PR: bin/76578
|
169639 |
17-May-2007 |
jmallett |
Fix typo.
|
169638 |
17-May-2007 |
jmallett |
o) Correct for missing whitespace. o) We don't need to check if ifp == stdin to give the filename, since we already know that ifn will be "stdin" if it is.
|
169636 |
17-May-2007 |
jmallett |
Fix confusing misindentation of a closing-brace. (It goes with the switch, not with the while.)
|
166035 |
15-Jan-2007 |
keramida |
Document that uniq(1) limits input line length to LINE_MAX characters.
PR: docs/107578 Submitted by: Jan Schaumann, jschauma.at.netmeister.org MFC after: 3 days
|
140368 |
17-Jan-2005 |
ru |
Added the EXIT STATUS section where appropriate.
|
135214 |
14-Sep-2004 |
tjr |
Remove a bogus check that caused empty lines not to be counted when the -c option was given.
Noticed by: sf
|
131502 |
02-Jul-2004 |
tjr |
Add support for multibyte characters.
|
131491 |
02-Jul-2004 |
ru |
Mechanically kill hard sentence breaks.
|
131060 |
24-Jun-2004 |
tjr |
Document the fact that uniq(1) does not recognize multibyte characters.
|
113382 |
12-Apr-2003 |
tjr |
Mention the environment variables that affect the execution of uniq. Of particular interest is the fact that LC_COLLATE affects how uniq determines whether lines are equal. This was the subject of a fairly heated debate a year or so ago, and it turns out that the current behaviour is correct and that the standard contained an error.
Now that the standard has been corrected by Cor. 1-2002, refer to 1003.1-2001 instead of the 1992 edition in the Standards section.
|
107276 |
26-Nov-2002 |
ru |
mdoc(7) police: markup polishing.
Approved by: re
|
102944 |
04-Sep-2002 |
dwmalone |
ANSIify function definitions. Add some constness to avoid some warnings. Remove use register keyword. Deal with missing/unneeded extern/prototypes. Some minor type changes/casts to avoid warnings.
Reviewed by: md5
|
99435 |
05-Jul-2002 |
tjr |
Correct the History section; uniq(1) appeared at least as early as V3. Move the section to after Standards.
|
99434 |
05-Jul-2002 |
tjr |
Remove redundant description of input_file and output_file arguments.
|
99433 |
05-Jul-2002 |
tjr |
Use err instead of errx when malloc fails. "malloc" is not a helpful error message.
|
98547 |
21-Jun-2002 |
tjr |
Skip fields in the manner required by POSIX, and the way V7 did it.
MFC after: 1 week
|
98545 |
21-Jun-2002 |
tjr |
Newline characters should not participate in line comparisons. Only apparent when -s is used or the last line of the file is missing a newline. Noticed by the textutils test suite.
MFC after: 1 week
|
98107 |
10-Jun-2002 |
jmallett |
Note that this appeared at least as early as PWB UNIX.
Use the literal string 'PWB UNIX', as we still have no .At macro for it.
|
97929 |
06-Jun-2002 |
ache |
Back out rev 1.19 because
1) It breaks uniq for real life languages when "substitute" directive used in the collating table. 2) It breaks uniq usage in tool chain with other localized utilities which use collate. 3) To follow LC_COLLATE it is directly allowed for uniq by POSIX P1003.1 Draft7 (7.3.2). It means that rev 1.19 gains no additional POSIX conformance.
|
97906 |
06-Jun-2002 |
tjr |
Compare lines with strcmp(), not strcoll(). We are interested only in equality, not ordering.
|
97905 |
06-Jun-2002 |
tjr |
Sync usage() with manual page synopsis.
|
97529 |
30-May-2002 |
tjr |
Accept an input file name of "-" to mean standard input, as required by P1003.2.
|
97528 |
29-May-2002 |
tjr |
Fields should be separated by <blank>s, not <space>s according to P1003.2.
|
97527 |
29-May-2002 |
tjr |
Don't bother trying to handle "-" arguments ourselves, getopt(3) already does this for us.
|
97257 |
24-May-2002 |
trhodes |
Add the word ``fields'' to the description, and change an instance from fields to num in the SYNOPSIS
Noticed by: keramida
|
97070 |
21-May-2002 |
trhodes |
Reword a small part of the uniq(1) manual page to help reduce word duplication (ie: fields fields).
PR: 38161 Reviewed by: keramida MFC after: 3 days
|
95030 |
19-Apr-2002 |
ache |
Use LC_ALL to pick collate
Noticed by: tjr
|
92922 |
22-Mar-2002 |
imp |
remove __P
|
87700 |
11-Dec-2001 |
markm |
WARNS=2 is going to become the default, so remove it from here.
|
87628 |
10-Dec-2001 |
dwmalone |
Style improvements recommended by Bruce as a follow up to some of the recent WARNS commits. The idea is:
1) FreeBSD id tags should follow vendor tags. 2) Vendor tags should not be compiled (though copyrights probably should). 3) There should be no blank line between including cdefs and __FBSDIF.
|
87303 |
03-Dec-2001 |
dwmalone |
Warns cleanups. Add FreeBSD ID to Makefile.
|
81687 |
15-Aug-2001 |
ru |
mdoc(7) police: utilize the new .Ex macro.
|
58628 |
26-Mar-2000 |
charnier |
Add DIAGNOSTICS section name
|
54401 |
10-Dec-1999 |
ache |
fix fatal typo
|
52616 |
29-Oct-1999 |
ache |
toupper -> tolower to match changed behaviour of new grep case fold
|
52459 |
24-Oct-1999 |
ache |
Cosmetique: use standard prototypes scheme Back out prev. change: toupper is more compatible with sort -f
|
52457 |
24-Oct-1999 |
ache |
toupper->tolower to match what strcasecmp does
|
52455 |
24-Oct-1999 |
ache |
Use strcoll to provide the same results as sort and comm Use LINE_MAX for max line size (as comm does)
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
44769 |
15-Mar-1999 |
billf |
Grammar nits, double negatives
PR: docs/10491 Submitted By: Tom Hukins <tom@eborcom.com>
|
34323 |
08-Mar-1998 |
ache |
Localize it
|
29207 |
07-Sep-1997 |
joerg |
Teach comm(1) and uniq(1) about an option for case-insensitive work.
PR: 3042 Submitted by: graphix@iastate.edu (Kent Vander Velden)
|
28503 |
21-Aug-1997 |
charnier |
Use err(3) instead of local redefinition.
|
24360 |
29-Mar-1997 |
imp |
compare return value from getopt against -1 rather than EOF, per the final posix standard on the topic.
|
23691 |
11-Mar-1997 |
peter |
This commit was generated by cvs2svn to compensate for changes in r23690, which included commits to RCS files with non-trunk default branches.
|
1591 |
27-May-1994 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r1590, which included commits to RCS files with non-trunk default branches.
|