Merge 'exclude' changes from tar 1.13.22.
authorJim Meyering <jim@meyering.net>
Fri, 31 Aug 2001 06:33:42 +0000 (06:33 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 31 Aug 2001 06:33:42 +0000 (06:33 +0000)
commit42a7a591a61dec356ce453f6c2e483c4a56fc9f4
tree355516dfd02a9447e8280f17a878d53603e1e599
parentd38495fd2489b080b76052bbdb333037175d457f
Merge 'exclude' changes from tar 1.13.22.
This fixes one or two unlikely storage allocation overflow bugs,
but doesn't change user-visible behavior otherwise.

(bool): Declare, perhaps by including stdbool.h.
(<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
(<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
Include if available.
(<xalloc.h>): Include
(SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
(verify): New macro.  Use it to verify that EXCLUDE macros do not
collide with FNM macros.
(struct patopts): New struct.
(struct exclude): Use it, as exclude patterns now come with options.
(new_exclude): Support above changes.
(new_exclude, add_exclude_file):
Initial size must now be a power of two to simplify overflow checking.
(free_exclude, fnmatch_no_wildcards): New function.
(excluded_filename): No longer requires options arg, as the options
are determined by add_exclude.  Now returns bool, not int.
(excluded_filename, add_exclude):
Add support for the fancy new exclusion options.
(add_exclude, add_exclude_file): Now takes int options arg.
Check for arithmetic overflow when computing sizes.
(add_exclude_file): xrealloc might modify errno, so don't
realloc until after errno might be used.
lib/exclude.c