]> git.ipfire.org Git - thirdparty/libbsd.git/log
thirdparty/libbsd.git
3 years agoman: Use -compact also for alternative functions in libbsd(7)
Guillem Jover [Mon, 4 Apr 2022 09:49:52 +0000 (11:49 +0200)] 
man: Use -compact also for alternative functions in libbsd(7)

The other function lists use the compact mode, let's be uniform about
this.

3 years agogetentropy: Fix function cast for getauxval()
Guillem Jover [Thu, 31 Mar 2022 18:46:56 +0000 (20:46 +0200)] 
getentropy: Fix function cast for getauxval()

Fix also the Hurd implementation, missed in the original fix.

Extends: commit 72a82ee262795c9162e712885381a111fcf988bc
Warned-by: gcc
3 years agoRelease libbsd 0.11.6 0.11.6
Guillem Jover [Wed, 30 Mar 2022 21:09:35 +0000 (23:09 +0200)] 
Release libbsd 0.11.6

3 years agoAdd LoongArch support to nlist()
WANG Xuerui [Sat, 11 Sep 2021 04:54:28 +0000 (12:54 +0800)] 
Add LoongArch support to nlist()

Closes: !13
Signed-off-by: WANG Xuerui <git@xen0n.name>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agoman: Document when functions were added to musl in libbsd(7)
Guillem Jover [Wed, 30 Mar 2022 20:56:43 +0000 (22:56 +0200)] 
man: Document when functions were added to musl in libbsd(7)

The explicit_bzero(3) and reallocarray(3) functions are also present on
musl libc, mention it in the superseded section.

3 years agoRemove arc4random() OpenBSD support
Guilherme Janczak [Fri, 31 Dec 2021 08:25:08 +0000 (08:25 +0000)] 
Remove arc4random() OpenBSD support

The arc4random() support for OpenBSD does not build. The intention was
to include any portability code so that the library could be easily
ported to such systems, but it makes little sense to build it on OpenBSD
where most of the functionality will be already present, or the software
would have been ported anyway.

[guillem@hadrons.org: Reword commit message to add rationale. ]

Closes: !15
Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agobuild: Add alpine to CI for tests with musl libc
Duncan Overbruck [Mon, 24 Jan 2022 14:11:38 +0000 (15:11 +0100)] 
build: Add alpine to CI for tests with musl libc

Closes: !18
Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agotest: Import explicit_bzero and strtonum test cases from OpenBSD
Guillem Jover [Sat, 29 Jan 2022 13:48:22 +0000 (14:48 +0100)] 
test: Import explicit_bzero and strtonum test cases from OpenBSD

- Remove trailing spaces.
- Declare file-scope functions and variables static.
- Declare functions with a proper prototype.
- Do not mix declarations and code for C90 conformance.
- Do not compare size_t and ssize_t variables.

3 years agobuild: Sort test programs in .gitignore
Guillem Jover [Sat, 29 Jan 2022 13:52:08 +0000 (14:52 +0100)] 
build: Sort test programs in .gitignore

3 years agotest: Add fpurge() test case using open_memstream(3) FILE
Duncan Overbruck [Tue, 25 Jan 2022 19:34:39 +0000 (20:34 +0100)] 
test: Add fpurge() test case using open_memstream(3) FILE

Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agofpurge: Make it work with non fd based FILEs
Duncan Overbruck [Tue, 25 Jan 2022 19:32:30 +0000 (20:32 +0100)] 
fpurge: Make it work with non fd based FILEs

Streams opened with for example open_memstream(3) will have no associated
file descriptor, and fileno(3) will fail.

Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agotest: Remove static FILE declaration from fpurge test
Duncan Overbruck [Mon, 24 Jan 2022 15:47:00 +0000 (16:47 +0100)] 
test: Remove static FILE declaration from fpurge test

This does not work with libcs that do not declare the structure
in a header file, like musl. And gets in the way of supporting
non-fd based streams.

Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agoRelease libbsd 0.11.5 0.11.5
Guillem Jover [Tue, 25 Jan 2022 00:48:29 +0000 (01:48 +0100)] 
Release libbsd 0.11.5

3 years agoRevert "build: Add missing proctitle unit test program"
Guillem Jover [Tue, 25 Jan 2022 00:41:14 +0000 (01:41 +0100)] 
Revert "build: Add missing proctitle unit test program"

This reverts commit beafad2657c7a57109c28f8bad9cb028c84c7dd5.

This test was already handled later on as part of the BUILD_LIBBSD_CTOR
conditional. Adding it to the unconditional set made the build fail when
the system does not have GNU .init_array section support.

Closes: #9
Analysis-by: Duncan Overbruck <mail@duncano.de>
3 years agoDocument how to build from git and from a tarball release
Guillem Jover [Sun, 23 Jan 2022 20:07:45 +0000 (21:07 +0100)] 
Document how to build from git and from a tarball release

Closes: #8
3 years agobuild: Check for objdump explicitly
Guillem Jover [Sun, 23 Jan 2022 17:54:33 +0000 (18:54 +0100)] 
build: Check for objdump explicitly

We should not assume that something will implicitly check for this tool,
as we need it ourselves, and this is an internal implementation detail
of right now libtool.

Fixes: commit f11ab6722367f1cf62704ed3c827b9b68dcb5397
3 years agobuild: Respect $(OBJDUMP)
Sam James [Sun, 23 Jan 2022 15:36:55 +0000 (15:36 +0000)] 
build: Respect $(OBJDUMP)

We already search for it in `./configure` so let's respect
the result of that search.

This helps with cross-compilation and any other cases
where one might want to choose a different toolchain.

Closes: !16
Bug: https://bugs.gentoo.org/831863
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agoRelease libbsd 0.11.4 0.11.4
Guillem Jover [Sat, 22 Jan 2022 21:41:51 +0000 (22:41 +0100)] 
Release libbsd 0.11.4

3 years agoman: Add missing comma in .Dd for tree(3)
Guillem Jover [Wed, 1 Dec 2021 23:35:05 +0000 (00:35 +0100)] 
man: Add missing comma in .Dd for tree(3)

Reported-by: Thorsten Glaser <tg@mirbsd.de>
3 years agoman: Update tree(3) man page from OpenBSD
Guillem Jover [Tue, 30 Nov 2021 03:00:54 +0000 (04:00 +0100)] 
man: Update tree(3) man page from OpenBSD

This man page has a BSD-3-clause-author license instead of the old
BSD-4-clause license.

3 years agobuild: Clarify link-time warnings
Guillem Jover [Sun, 28 Nov 2021 22:19:16 +0000 (23:19 +0100)] 
build: Clarify link-time warnings

Mention the involved function instead of stating an implicit "this
function". Mention libbsd when proposing using an alternative libmd
to make the context clear.

3 years agoSwitch md5 compatibility logic back to direct linking
Guillem Jover [Sun, 28 Nov 2021 21:44:08 +0000 (22:44 +0100)] 
Switch md5 compatibility logic back to direct linking

When using the recent dlsym() based wrapper, we are not requiring any
symbol from libmd, as we resolve those dynamically at run-time. We were
ending up linking against libmd because in another part of the code we
require (depending on the architecture) the SHA512 functions for the
getentropy() local implementation. But that function might be provided
by the system libc on some systems, which means we end up not linking
against libmd at all.

To solve this we go back to the previous simpler solution of linking
directly, which had the main drawback of then making programs fail to
link when not specifying -lmd (on platforms that need it). And then
switch the .so link point from a symlink to a linker script, so that we
can inject the -lmd library as-needed. This is similar to what glibc is
doing.

Fixes: commit 31f034e3862debda8615a449b1c11c4d6920dcc7
3 years agobuild: Split libmd dependency due to MD5 functions from SHA requirements
Guillem Jover [Sun, 28 Nov 2021 21:40:58 +0000 (22:40 +0100)] 
build: Split libmd dependency due to MD5 functions from SHA requirements

To be able to rework the md5 deprecation logic, we need to detangle when
we depend on libmd due to requiring MD5 functions, which might be
otherwise provided by libc, or when we require SHA functions for the
internal getentropy() implementation.

3 years agobuild: Add new libbsd_symver_weak() macro
Guillem Jover [Sun, 28 Nov 2021 21:34:59 +0000 (22:34 +0100)] 
build: Add new libbsd_symver_weak() macro

We will use it for the reworked md5 deprecation logic.

3 years agotest: Check that strdup() does not fail
Guillem Jover [Sat, 27 Nov 2021 20:09:18 +0000 (21:09 +0100)] 
test: Check that strdup() does not fail

Warned-by: gcc
3 years agogetentropy: Add missing prototype for BSD variant
Guillem Jover [Sat, 27 Nov 2021 20:07:00 +0000 (21:07 +0100)] 
getentropy: Add missing prototype for BSD variant

Warned-by: gcc
3 years agonlist: Remove condition which is always true
Guillem Jover [Sat, 27 Nov 2021 19:26:05 +0000 (20:26 +0100)] 
nlist: Remove condition which is always true

The nlist() function is limited to handle ELF binaries of the same class
as size as the size_t of the architecture built.

In addition the SIZE_T_MAX macro is BSD specific, and was falling back
to the wrong constant on most 64-bit non-BSD systems.

Warned-by: gcc
3 years agobuild: Append __ after __attribute and __typeof keywords
Guillem Jover [Sat, 27 Nov 2021 21:52:28 +0000 (22:52 +0100)] 
build: Append __ after __attribute and __typeof keywords

Be consistent with other usages in the code base.

3 years agobuild: Ignore backup files
Guillem Jover [Sat, 27 Nov 2021 05:54:49 +0000 (06:54 +0100)] 
build: Ignore backup files

3 years agotest: Explicitly mark symbols as used
Victor Westerhuis [Fri, 26 Nov 2021 19:24:20 +0000 (20:24 +0100)] 
test: Explicitly mark symbols as used

Because some of the symbols are not otherwise referenced, GCC would like
to remove them.

Closes: !14
Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agobuild: Enable .init_array support when building with LTO
Victor Westerhuis [Fri, 26 Nov 2021 19:01:18 +0000 (20:01 +0100)] 
build: Enable .init_array support when building with LTO

Because these symbols are not otherwise referenced, GCC would like
to remove them.

Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agoman: Fix .Nx macro usage
Guillem Jover [Thu, 7 Oct 2021 21:08:42 +0000 (23:08 +0200)] 
man: Fix .Nx macro usage

Its arguments are used as version numbers, so we need continue the
content on the next line.

3 years agobuild: Allow building with -flto on gcc-10 and newer
Alexander Miller [Thu, 30 Sep 2021 01:39:57 +0000 (03:39 +0200)] 
build: Allow building with -flto on gcc-10 and newer

Global asm statements (like .symver directives) do not work reliably
in gcc with link time optimization. Use the symver attribute introduced
with gcc-10 to set symbol versions instead, if available.

[guillem@hadrons.org:
 - Simplify by using __has_attribute fallback from <sys/cdefs.h>.
 - Coding style changes. ]

Signed-off-by: Guillem Jover <guillem@hadrons.org>
3 years agotest: Fix pipe_feed() to allow checking fprintf format strings
Guillem Jover [Mon, 1 Mar 2021 04:14:10 +0000 (05:14 +0100)] 
test: Fix pipe_feed() to allow checking fprintf format strings

Warned-by: gcc -W
3 years agobuild: Add missing proctitle unit test program
Guillem Jover [Sat, 6 Mar 2021 23:22:59 +0000 (00:22 +0100)] 
build: Add missing proctitle unit test program

3 years agotest: Do not pass NULL as the first funopen() argument
Guillem Jover [Tue, 17 Aug 2021 01:14:57 +0000 (03:14 +0200)] 
test: Do not pass NULL as the first funopen() argument

Warned-by: gcc -W
3 years agobuild: Detect sed at configure time
Guillem Jover [Tue, 17 Aug 2021 00:59:59 +0000 (02:59 +0200)] 
build: Detect sed at configure time

Check whether sed is available and use the implementation matching the
requirements via the SED variable.

3 years agovis: Add prototypes for strnvis() and strnunvis() variants
Guillem Jover [Tue, 2 Mar 2021 04:18:04 +0000 (05:18 +0100)] 
vis: Add prototypes for strnvis() and strnunvis() variants

Warned-by: gcc
3 years agotest: Cast literal strings to (char *) on n_name assignment
Guillem Jover [Mon, 1 Mar 2021 23:48:31 +0000 (00:48 +0100)] 
test: Cast literal strings to (char *) on n_name assignment

The member is declared as n_name so we cannot directly assign a literal
string constant.

Warned-by: gcc
3 years agoAdd missing prototypes to functions
Guillem Jover [Mon, 1 Mar 2021 23:48:02 +0000 (00:48 +0100)] 
Add missing prototypes to functions

Warned-by: gcc
3 years agobuild: Add compiler warnings support
Guillem Jover [Fri, 19 Feb 2021 05:55:17 +0000 (06:55 +0100)] 
build: Add compiler warnings support

Detect as many warnings as possible during configure and enable them
if the user did not supply any, so that any such problem can be spotted
and fixed.

4 years agonlist: Remove repeated shadowing variable declaration 1/merge
Guillem Jover [Fri, 19 Feb 2021 05:51:18 +0000 (06:51 +0100)] 
nlist: Remove repeated shadowing variable declaration

Warned-by: gcc
4 years agogetentropy: Fix function cast for getauxval()
Guillem Jover [Sat, 20 Feb 2021 21:22:54 +0000 (22:22 +0100)] 
getentropy: Fix function cast for getauxval()

Warned-by: gcc
4 years agotest: Add proper prototypes for main() function
Guillem Jover [Fri, 19 Feb 2021 05:49:53 +0000 (06:49 +0100)] 
test: Add proper prototypes for main() function

Warned-by: gcc
4 years agoMark local functions as static
Guillem Jover [Fri, 19 Feb 2021 05:49:24 +0000 (06:49 +0100)] 
Mark local functions as static

Warned-by: gcc
4 years agoAdd link-time warnings to MD5 wrapper functions
Guillem Jover [Thu, 11 Feb 2021 03:41:46 +0000 (04:41 +0100)] 
Add link-time warnings to MD5 wrapper functions

Let's get the word out that these functions are deprecated and should be
switched away from.

4 years agoRequire a semicolon for libbsd_link_warning() macro
Guillem Jover [Thu, 11 Feb 2021 03:40:48 +0000 (04:40 +0100)] 
Require a semicolon for libbsd_link_warning() macro

Remove the semicolon in the macro definition to force adding one on the
call sites, to make the code look like an actual function.

4 years agoman: Call the libbsd-ctor library by its name instead of bsd-ctor
Guillem Jover [Thu, 18 Feb 2021 22:38:30 +0000 (23:38 +0100)] 
man: Call the libbsd-ctor library by its name instead of bsd-ctor

4 years agoman: Fix pkg-config(1) references in libbsd(7) man page
Guillem Jover [Thu, 18 Feb 2021 22:38:30 +0000 (23:38 +0100)] 
man: Fix pkg-config(1) references in libbsd(7) man page

4 years agobuild: Add code coverage support in the GitLab CI
Guillem Jover [Sun, 28 Feb 2021 04:16:01 +0000 (05:16 +0100)] 
build: Add code coverage support in the GitLab CI

4 years agobuild: Use apt-get instead of apt in the GitLab CI
Guillem Jover [Sun, 28 Feb 2021 04:14:54 +0000 (05:14 +0100)] 
build: Use apt-get instead of apt in the GitLab CI

The former is to be used programmatically, while the latter is intended
for interactive use.

4 years agobuild: Add a Libs.private field to overlay pkg-config file
Guillem Jover [Tue, 9 Feb 2021 07:35:36 +0000 (08:35 +0100)] 
build: Add a Libs.private field to overlay pkg-config file

We need to list all internal libraries there so that we can statically
link.

Fixes: commit 2374f409defb380d0c5c07f28b9c166ef8bdc742
4 years agoRelease libbsd 0.11.3 0.11.3
Guillem Jover [Tue, 9 Feb 2021 05:14:25 +0000 (06:14 +0100)] 
Release libbsd 0.11.3

4 years agoSwitch libmd wrapper to use dlsym()
Guillem Jover [Tue, 9 Feb 2021 04:57:37 +0000 (05:57 +0100)] 
Switch libmd wrapper to use dlsym()

Switch from the previous versioned symbol implementation which required
users to also link against the message digest provider explicitly, or
they would fail to find the symbols, to an implementation that loads
the symbols from the linked library providing the functions using
dlsym(), thus preserving backwards compatibility.

4 years agobuild: Add a Libs.private field to pkg-config file
Guillem Jover [Tue, 9 Feb 2021 04:56:49 +0000 (05:56 +0100)] 
build: Add a Libs.private field to pkg-config file

We need to list all internal libraries there so that we can statically
link.

4 years agobuild: Use a single variable to track libraries to link against
Guillem Jover [Tue, 9 Feb 2021 05:04:38 +0000 (06:04 +0100)] 
build: Use a single variable to track libraries to link against

Using various variables means we have to keep these in sync in various
places. Just use a single variable that we can use anywhere where this
is needed.

4 years agobuild: Fix message digest library checks
Guillem Jover [Tue, 9 Feb 2021 05:02:46 +0000 (06:02 +0100)] 
build: Fix message digest library checks

They were not failing when not finding the SHA-2 functions and
were hardcoding -lmd regardless of what library had been found.

4 years agoUse uintptr_t and size_t instead of __-prefixed types in <sys/cdefs.h>
Guillem Jover [Tue, 9 Feb 2021 01:46:49 +0000 (02:46 +0100)] 
Use uintptr_t and size_t instead of __-prefixed types in <sys/cdefs.h>

The __-prefixed types cannot be assumed to be defined. Use the standard
types instead.

Closes: #6
4 years agoRelease libbsd 0.11.2 0.11.2
Guillem Jover [Mon, 8 Feb 2021 02:59:56 +0000 (03:59 +0100)] 
Release libbsd 0.11.2

4 years agoclosefrom: Use close_range() on Linux when available
Guillem Jover [Mon, 8 Feb 2021 02:45:06 +0000 (03:45 +0100)] 
closefrom: Use close_range() on Linux when available

Closes: !11
Based-on-patch-by: cptpcrd <cptpcrd.git@gmail.com>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agoclosefrom: Handle lowfd < 0 properly
cptpcrd [Sun, 7 Feb 2021 19:22:21 +0000 (14:22 -0500)] 
closefrom: Handle lowfd < 0 properly

More important if close_range() is going to be used, since casting
negative values to 'unsigned int' might hide the errors.

[guillem@hadrons.org: Minor coding style fix. ]

Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agoclosefrom: Import some changes from sudo
Guillem Jover [Mon, 8 Feb 2021 01:52:50 +0000 (02:52 +0100)] 
closefrom: Import some changes from sudo

Take most of the changes done in sudo, but preserve the existing local
changes and refactoring.

In addition, refactor pstat implementation into closefrom_pstat(), so
that the code is easier to read, and requires no conditional
declarations.

4 years agoUpdate <sys/queue.h> from FreeBSD
Faidon Liambotis [Sun, 7 Feb 2021 18:47:00 +0000 (20:47 +0200)] 
Update <sys/queue.h> from FreeBSD

This brings <sys/queue.h> to the most up-to-date version from FreeBSD,
incorporating 18 commits from the past 5 years (2015-02-24 - 2021-01-25):

  $ git log --oneline 9090a24aed70..8d55837dc133 sys/sys/queue.h share/man/man3/queue.3

Only minimal changes compared to the FreeBSD version have been applied
(queue.3 -> queue.3bsd, _LIBBSD_ prefix).

[guillem@hadrons.org: Remove reference to kernel mode in man page. ]

Closes: !12
Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agotest: Improve code coverage for strnstr(3) unit tests
Guillem Jover [Sun, 7 Feb 2021 22:24:51 +0000 (23:24 +0100)] 
test: Improve code coverage for strnstr(3) unit tests

4 years agoman: Update libbsd(7) man page with updates in 0.11.0
Guillem Jover [Sun, 7 Feb 2021 09:56:51 +0000 (10:56 +0100)] 
man: Update libbsd(7) man page with updates in 0.11.0

4 years agobuild: Install libmd-dev in the gitlab CI
Guillem Jover [Sun, 7 Feb 2021 09:37:18 +0000 (10:37 +0100)] 
build: Install libmd-dev in the gitlab CI

4 years agobuild: Switch gitlab CI to use a Debian buster
Guillem Jover [Sun, 7 Feb 2021 09:35:57 +0000 (10:35 +0100)] 
build: Switch gitlab CI to use a Debian buster

4 years agoRelease libbsd 0.11.1 0.11.1
Guillem Jover [Sun, 7 Feb 2021 01:03:59 +0000 (02:03 +0100)] 
Release libbsd 0.11.1

4 years agoAdd support for new LIBBSD_VIS_OPENBSD selection macro
Guillem Jover [Sat, 6 Feb 2021 22:28:42 +0000 (23:28 +0100)] 
Add support for new LIBBSD_VIS_OPENBSD selection macro

This will make it possible to explicitly select the OpenBSD vis
implementation (the current default) for code of OpenBSD origins.

4 years agoRelease libbsd 0.11.0 0.11.0
Guillem Jover [Sat, 6 Feb 2021 23:23:43 +0000 (00:23 +0100)] 
Release libbsd 0.11.0

4 years agoUpdate copyright claims
Guillem Jover [Sat, 6 Feb 2021 23:09:45 +0000 (00:09 +0100)] 
Update copyright claims

4 years agoUse libmd hashing function implementations instead of embedding our own
Guillem Jover [Sat, 6 Feb 2021 23:09:30 +0000 (00:09 +0100)] 
Use libmd hashing function implementations instead of embedding our own

This splits the implementation responsibilities, and reduces embedded
code copies, which was one of the driving points with this project to
start with, so it's nice to give a good example.

4 years agoProvide a default progname on Windows
Aaron Dierking [Thu, 5 Jul 2018 21:47:47 +0000 (14:47 -0700)] 
Provide a default progname on Windows

[guillem@hadrons.org:
 - Remove .exe extension from default program name.
 - Call reallocarray() once by switching to a «do {} while» loop.
 - Minor coding style fixes. ]

Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agoImport pwcache module from OpenBSD
Guillem Jover [Sat, 6 Feb 2021 22:43:12 +0000 (23:43 +0100)] 
Import pwcache module from OpenBSD

4 years agoman: Remove empty line in reallocarray(3bsd)
Guillem Jover [Sun, 7 Feb 2021 00:27:51 +0000 (01:27 +0100)] 
man: Remove empty line in reallocarray(3bsd)

Warned-by: lintian
Fixes: commit 01f0d1ea1e71f1018a009ebd9203dd48e6d90c45
4 years agoAdd recallocarray() and freezero() from OpenBSD
Faidon Liambotis [Thu, 31 Dec 2020 10:46:03 +0000 (12:46 +0200)] 
Add recallocarray() and freezero() from OpenBSD

Add recallocarray(), introduced in OpenBSD 6.1, and freezero(),
introduced in OpenBSD 6.2. The former is imported as-is from OpenBSD,
while the latter is the non-malloc-internal branch of the same code (and
also the OpenSSH portable variant).

Both of these originated in OpenBSD, but have also been implemented by
IllumOS, cf. https://www.illumos.org/issues/8546

Documentation for these functions is in malloc(3) upstream, the relevant
parts of which were previously imported in reallocarray(3bsd). Update
reallocarray(3bsd) with the changes that were introduced since, and add
the relevant bits for recallocarray() and freezero(), plus aliases.

[guillem@hadrons.org: Update copyright in COPYING. ]

Closes: !10
Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agoFix ELF detection on Intel compilers
Seth R Johnson [Thu, 14 Nov 2019 12:26:41 +0000 (07:26 -0500)] 
Fix ELF detection on Intel compilers

The Intel compiler does not define __amd64__ on x86_64 platforms;
instead, like other compilers, it defines __x86_64__ .

Closes: !8
Signed-off-by: Guillem Jover <guillem@hadrons.org>
4 years agoman: Add a timespec(3bsd) alias to timeval(3bsd)
Guillem Jover [Sun, 20 Sep 2020 01:30:20 +0000 (03:30 +0200)] 
man: Add a timespec(3bsd) alias to timeval(3bsd)

Even though man-pages project now includes man pages for system data
types, we still include these for any other system that does not have
them, to provide a self-contained project with code and documentation.

4 years agoman: Add missing LIBRARY section
Guillem Jover [Wed, 16 Sep 2020 21:41:28 +0000 (23:41 +0200)] 
man: Add missing LIBRARY section

4 years agoFix coding style
Guillem Jover [Sun, 20 Sep 2020 01:32:57 +0000 (03:32 +0200)] 
Fix coding style

4 years agotest: Fix short lived memory leaks
Guillem Jover [Sun, 16 Aug 2020 20:01:42 +0000 (22:01 +0200)] 
test: Fix short lived memory leaks

These are non-issues, but having a clean ASAN test suite makes it
possible to detect actual problems in the tested code.

Warned-by: gcc ASAN
4 years agofunopen: Fix memory leak in funopen_close() when closefn is NULL
Guillem Jover [Sun, 16 Aug 2020 19:58:04 +0000 (21:58 +0200)] 
funopen: Fix memory leak in funopen_close() when closefn is NULL

We need to free the cookiewrap even when the closefn method is NULL.

Warned-by: gcc ASAN
4 years agobuild: Detect support for --version-script in ld
Guillem Jover [Fri, 15 Nov 2019 23:04:18 +0000 (00:04 +0100)] 
build: Detect support for --version-script in ld

4 years agoDo not define SIZE_T_MAX if already defined
Guillem Jover [Mon, 12 Aug 2019 21:52:10 +0000 (23:52 +0200)] 
Do not define SIZE_T_MAX if already defined

4 years agoman: Add missing doc-operating-system-NetBSD string variable
Guillem Jover [Mon, 12 Aug 2019 21:25:20 +0000 (23:25 +0200)] 
man: Add missing doc-operating-system-NetBSD string variable

Fixes: commit 99320b9168ffb0112def1a712e8d59441d1b46d9.
4 years agoAdd missing strnvisx() to the symbols script
Guillem Jover [Mon, 26 Aug 2019 03:39:17 +0000 (05:39 +0200)] 
Add missing strnvisx() to the symbols script

Fixes: commit 2d7de186e9cb19a756c0630ee85cb3f2d29b3484.
5 years agoRelease libbsd 0.10.0 0.10.0
Guillem Jover [Wed, 7 Aug 2019 16:34:09 +0000 (18:34 +0200)] 
Release libbsd 0.10.0

5 years agoerr: Add err(), warn(), errx() and warnx() familiy of functions
Guillem Jover [Tue, 6 Aug 2019 13:49:41 +0000 (15:49 +0200)] 
err: Add err(), warn(), errx() and warnx() familiy of functions

Some systems such as Windows or musl-libc based ones do not have these
BSD extensions. In addition libbsd itself is making use of the warnx()
functions, so we better provide these interfaces in case they are
missing.

5 years agoerr: Rewrite warnc() and errc() family functions to be standalone
Guillem Jover [Tue, 6 Aug 2019 13:37:43 +0000 (15:37 +0200)] 
err: Rewrite warnc() and errc() family functions to be standalone

Do not depend on the system vwarn() and verr() functions to implement
the *c() variants, as the system might actually lack any of the <err.h>
BSD extensions.

5 years agoerr: Mark error functions as non-returning with __dead2
Guillem Jover [Tue, 6 Aug 2019 13:29:54 +0000 (15:29 +0200)] 
err: Mark error functions as non-returning with __dead2

5 years agoAdd e2k support for nlist()
Michael Shigorin [Tue, 6 Aug 2019 22:02:09 +0000 (00:02 +0200)] 
Add e2k support for nlist()

This is a Russian 64-bit LE VLIW architecture named Elbrus
(formerly Elbrus 2000).

[guillem@hadrons.org:
 - Place the entry in alphabetical order. ]

Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agoAdd AArch64 ILP32 support to nlist()
Frank Schaefer [Tue, 28 May 2019 21:04:54 +0000 (16:04 -0500)] 
Add AArch64 ILP32 support to nlist()

Closes: !7
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agoAdd ARC support to nlist()
Rosen Penev [Fri, 17 May 2019 01:44:56 +0000 (01:44 +0000)] 
Add ARC support to nlist()

Closes: !6
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agoAdd a comment to note the ELF entries are sorted alphabetically
Guillem Jover [Tue, 6 Aug 2019 22:00:15 +0000 (00:00 +0200)] 
Add a comment to note the ELF entries are sorted alphabetically

This should help people wanting to add new entries.

5 years agoRe-allow direct use of nlist.n_name in <nlist.h>
James Clarke [Sun, 3 Feb 2019 00:11:15 +0000 (00:11 +0000)] 
Re-allow direct use of nlist.n_name in <nlist.h>

Commit e8d340de ("Remove a.out support from nlist()") introduced a copy
of the definition of nlist from a.out.h. However, as well as having
n_name inside n_un, on the various BSDs n_name could also be accessed
as a direct member of nlist, and this is made use of by FreeBSD's
usr.bin/netstat/main.c. Thus we should also add the same enclosing
anonymous union.

[guillem@hadrons.org:
 - Add a minimal unit test. ]

Closes: !4
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agonlist: Fix out-of-bounds read on strtab
Guillem Jover [Wed, 7 Aug 2019 20:58:30 +0000 (22:58 +0200)] 
nlist: Fix out-of-bounds read on strtab

When doing a string comparison for a symbol name from the string table,
we should make sure we do a bounded comparison, otherwise a non-NUL
terminated string might make the code read out-of-bounds.

Warned-by: coverity
5 years agonlist: Fix unbounded malloc() calls
Guillem Jover [Sat, 15 Jun 2019 12:33:32 +0000 (14:33 +0200)] 
nlist: Fix unbounded malloc() calls

There are a couple of malloc() calls with unbounded size arguments,
coming from the parsed file. We need to make sure the size is not
larger than the file being parsed, otherwise we might end up with
out of memory conditions.

Reported-by: Daniel Hodson <daniel@elttam.com.au>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agonlist: Fix pread() return value check
Guillem Jover [Sat, 15 Jun 2019 12:33:32 +0000 (14:33 +0200)] 
nlist: Fix pread() return value check

We should check for partial reads, and not continue in those cases,
as we are not retrying them, otherwise we might end up operating on
uninitialized data.

Reported-by: Daniel Hodson <daniel@elttam.com.au>
Based-on-patch-by: Daniel Hodson <daniel@elttam.com.au>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agonlist: Check whether sh_link is within bounds
Guillem Jover [Sat, 15 Jun 2019 12:33:32 +0000 (14:33 +0200)] 
nlist: Check whether sh_link is within bounds

The sh_link members should be >= e_shnum, otherwise we might do out of
bounds read accesses on the shdr array.

Reported-by: Daniel Hodson <daniel@elttam.com.au>
Based-on-patch-by: Daniel Hodson <daniel@elttam.com.au>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
5 years agonlist: Check that e_shnum and e_shentsize are within bounds
Guillem Jover [Sat, 15 Jun 2019 12:33:32 +0000 (14:33 +0200)] 
nlist: Check that e_shnum and e_shentsize are within bounds

The e_shnum must not be 0, otherwise we will do a zero sized allocation
and further processing of the executable will lead to out of bounds
read/write accesses. The e_shentsize must be equal to sizeof(Elf_Shdr),
otherwise we will perform out of bounds read accesses on the shdr array.

Reported-by: Daniel Hodson <daniel@elttam.com.au>
Based-on-patch-by: Daniel Hodson <daniel@elttam.com.au>
Signed-off-by: Guillem Jover <guillem@hadrons.org>