src


Log

Author Commit Date CI Message
Guillem Jover 948bcf1d 2013-07-13T02:11:20 Warn when setproctitle() gets called before initialization Try to give a helpful message in case the program is not initializing the setproctitle() machinery.
Guillem Jover c5b95902 2013-07-11T12:25:54 Move setproctitle() automatic initialization to its own library The automatic initialization cannot be part of the main shared library, because there is no thread-safe way to change the environ global variable. This is not a problem if the initializaion happens just at program load time, but becomes one if the shared library is directly or indirectly dlopen()ed during the execution of the program, which could have either kept references to the old environ or could change it in some other thread. This has been observed for example on systems using Samba NSS modules. To avoid any other possible fallout, the constructor is split into a new static library that needs to be linked explicitly into programs using setproctitle(). As an additional safety measure the pkg-config linker flags will mark the program as not allowing to be dlopen()ed so that we avoid the problem described above. Reported-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=66679
Guillem Jover 3077d2ff 2013-07-12T22:15:58 build: Move version ABI from Makefile to configure.ac It's easier to find there, and the value can be reused in case we have to provide another shared library.
Guillem Jover 1bf0a555 2013-06-08T17:43:42 Release libbsd 0.5.2
Guillem Jover ad613d9d 2013-06-07T07:11:50 Create a shallow copy of environ before replacing it in setproctitle() Because clearenv() or setenv() might free the environ array of pointers, we should make sure to copy it so that we can access it later on when doing the deep copy via setenv(). Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=65470
Guillem Jover 50e4c55a 2013-06-08T17:55:19 Try to check if setproctitle() constructor got passed arguments
Guillem Jover e084ce3f 2013-06-07T04:46:29 Specify setproctitle_stub() signature manually if typeof is missing Do not stop exporting the function in the version node even if typeof is not available, as that would break ABI.
Guillem Jover 6faea4d2 2013-05-29T02:23:56 Force setproctitle() into .init_array section The GNU .init_array support is an extension over the standard System V ABI .init_array support, which passes the main() arguments to the init function. This support comes in three parts. First the dynamic linker (from glibc) needs to support it. Then function pointers need to be placed in the section, for example by using __attribute__((constructor)), that the compiler (gcc or clang for example) might place in section .ctors and the linker (from binutils) will move to .init_array on the output object, or by placing them directly into .init_array by the compiler when compiling. If this does not happen and the function pointers end up in .ctors, then they will not get passed the main() arguments, which we do really need in this case. But this relies on recent binutils or gcc having native .init_array support, and not having it disabled through --disable-initfini-array. To guarantee we get the correct behaviour, let's just place the function pointer in the .init_array section directly, so we only require a recent enough glibc. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=65029
Guillem Jover 46633647 2013-05-27T06:52:05 Release libbsd 0.5.1
Guillem Jover 95878823 2013-05-21T04:34:34 Release libbsd 0.5.0
Guillem Jover 509841b5 2013-05-25T15:44:57 build: Use AM_V_at for mkdir
Guillem Jover 7c4caa67 2013-05-25T15:36:11 Fix comparison between signed and unsigned integer compiler warnings
Guillem Jover 30349f89 2013-05-25T15:35:39 Update radixsort module from NetBSD Merge some interesting changes.
Guillem Jover 96a2dae3 2013-05-25T15:31:45 Update setmode module from NetBSD Merge some interesting changes.
Casper Dik a4812cdf 2013-03-15T01:13:58 Fix getpeereid() compilation on Solaris The code in getpeereid() is unlikely to compile as ucred_t is an opaque struct (ucred_t * works but ucred_t does not). Either you need to give a pointer initialized to NULL and getpeerucred() allocates a new ucred or you call it with an allocated ucred as in this patch. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover d3a09e1c 2012-12-27T11:19:20 Switch dehumanize_number() to use expand_number() The function is a duplicate of expand_number(), but covering less prefixes and with a slightly different function signature. Spotted-by: Peter da Silva <resuna@gmail.com>
Guillem Jover e9933255 2013-05-25T17:11:53 Make setproctitle() available in 0.2 and 0.5 version nodes Make the 0.5 version the default, so that code wanting the actual implemented version can get a proper versioned depdendency. For code linked against the old version, make it available as an alias.
Guillem Jover c984dacd 2012-11-27T14:24:13 Implement sendmail semantics for setproctitle() Prefix the title with "progname: ", and skip it if the format string starts with '-' (which gets skipped on output too).
Guillem Jover 35785f8d 2012-11-25T21:10:53 Modify setproctitle() to conform to project coding style Use local getprogname()/setprogname() instead of reimplementing them locally. Use clearenv() if available, not just on glibc. Use bool instead of _Bool. Use paranthesis on sizeof. Fold the SPT_MIN macro into spt_min(). Make spt_init() static. Avoid unnecessary gotos.
William Ahern 2a0260d0 2012-11-28T11:09:02 Add a setproctitle() implementation Taken from libnostd. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover f8d52ead 2012-11-23T18:33:23 Add x32 support to nlist()
Guillem Jover a97ce513 2012-11-23T21:19:45 Add new fgetwln() function Man page taken from FreeBSD.
Guillem Jover cf683a27 2012-11-23T18:32:35 Add arm64 (aka aarch64) to nlist()
Strake ee0489eb 2012-08-07T08:44:30 Add new fparseln() function Taken from NetBSD. [guillem@hadrons.org: - Import from NetBSD instead of FreeBSD to get a 3-clause BSD license, instead of a 4-clause one. - Define compatibility macros. - Change library from libc to libbsd and header in man page. - Add copyright information to COPYING. - Add symbol to map file. ] Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover cb7bc0d8 2012-11-25T22:09:43 Add file buffer pool support to fgetln() This avoids buffer overwrites during concurrent or intermixed calls to fgetln() when using more than one different stream (currently 32), which the original interface supports natively by using an internal buffer from the FILE structure. Although this workaround is rudimentary, it should cover most of the theoretically problematic cases.
Guillem Jover 1be0bdb2 2012-11-25T21:13:38 Add new strnstr() function Taken from FreeBSD.
Guillem Jover ff0d700d 2012-11-23T17:16:43 Add new wcslcat() and wcslcpy() functions Taken from FreeBSD.
Guillem Jover 918a4dba 2012-06-27T09:15:15 Release libbsd 0.4.2
Guillem Jover 14524b54 2012-06-03T07:39:42 build: Set default compiler variables from configure This centralizes the setting so there's no duplication anymore, makes sure the user supplied variables are never overridden, and are only set when using gcc. Reported-by: Samuli Suominen <ssuominen@gentoo.org>
Guillem Jover c21d788f 2012-06-01T08:20:37 Release libbsd 0.4.1
Guillem Jover fdcae577 2012-06-01T08:17:42 build: Set runtimelibdir to libdir This makes sure the install-exec-hook under src works as expected even when no runtimelibdir was specified, otherwise the symlinks end up pointing to non-existing targets. Reported-by: Ryan Mullen <rmmullen@gmail.com>
Guillem Jover e9e4a60d 2012-06-01T08:15:00 build: Use MKDIR_P variable instead of literal «mkdir -p»
Guillem Jover 309c82a0 2012-05-29T04:38:07 Release libbsd 0.4.0
Guillem Jover cd67cb14 2012-05-29T07:17:46 Use implicit <md5.h> from overlay instead explicit <bsd/md5.h> This was assuming an installed <bsd/md5.h> on the system, due to the build system not including -Iinclude/ anymore. Regression introduced in commit 901ed630fc64fca828e031bc8fa6780db9f05db1.
Guillem Jover e7f39760 2012-03-23T10:31:42 Add email address to my name
Guillem Jover 75299746 2012-01-03T08:58:01 Base getprogname() on program_invocation_short_name presence instead of glibc
Guillem Jover d5d91869 2012-01-03T09:08:35 Base fpurge() implementation on __fpurge presence instead of glibc
Guillem Jover f8e80630 2012-01-03T08:40:18 Base fgetln() implementation on getline presence instead of glibc
Robert Millan 64348583 2011-12-31T04:30:48 Add new expand_number() function Taken from FreeBSD. [guillem@hadrons.org: - Include <stdint.h> in <bsd/libutil.h>. ] Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 943939d0 2011-12-31T08:39:44 Add new closefrom() function Code taken from sudo, man page from FreeBSD.
Guillem Jover 3d614131 2011-12-31T06:01:27 Base errc() and warnc() on vwarnc() and verrc() respectively
Guillem Jover 87232260 2011-07-06T16:29:26 Use system __progname variable in progname module if available
Guillem Jover b5cc17d6 2011-07-05T23:27:31 Use getexecname() if available for getprogname() This function is present on Solaris.
Guillem Jover 980f04f7 2012-01-03T08:58:52 build: Do not define already defined _GNU_SOURCE The macro is defined by configure on config.h which is now implicitly included by all source files.
Guillem Jover 8d2f12d7 2012-01-03T08:45:05 build: Include <config.h> through -include for all source files
Guillem Jover 88004b30 2011-12-31T07:31:47 build: Set -Wno-unused-parameter to default CFLAGS
Guillem Jover dcaa93d9 2010-12-17T11:13:04 build: Switch to autotools
Guillem Jover 0aa777f4 2011-12-31T07:35:52 Move .pc and .map files to src/
Guillem Jover 540ab03b 2011-12-31T06:50:40 Move man pages to man/
Guillem Jover 2fb7200d 2011-10-23T19:27:44 Fix typos in source comments Found by codespell.
Guillem Jover 4a6303ba 2011-06-08T02:10:38 Constify bsd_getopt(3) arguments This matches the standard declaration for getopt(3).
Guillem Jover b891772a 2011-05-29T02:49:14 Remove blank lines at EOF
Guillem Jover 9d042171 2011-05-25T07:38:36 Map getopt to bsd_getopt if we are using the overlay This will ensure the code can safely and correctly use optreset transparently.
Guillem Jover 94fe901e 2011-05-14T18:12:48 Abort compilation if fgetln cannot be wrapped
Guillem Jover 28585a58 2011-05-14T17:58:08 Add fpurge function
Guillem Jover 8b6a7477 2011-02-23T12:38:42 Conditionalize temporary compatibility inclusions These inclusions were in place for backward compatibility purposes, when the headers were split so that code using them would not break. Make it possible for applications to disable them by defining LIBBSD_CLEAN_INCLUDES so that buildability can be tested and fixed before they get removed in a subsequent release.
Guillem Jover c594192b 2011-05-14T14:17:44 Correct library name in man pages
Guillem Jover 8478e574 2011-02-23T13:14:22 Update libbsd header references in man pages Point to the namespaced path for libbsd specific headers.
Guillem Jover 520682e5 2011-02-23T14:04:57 Add support for transparent compilation This means that software being ported should not need to be modified in the usual case, as the libbsd headers will take over the standard namespace and fill the missing gaps, and include the system headers. To use this the new libbsd-transparent.pc file can be used through pkg-config, which should end up doing the right thing.
Guillem Jover 1497d347 2011-02-25T13:52:59 Initialize __progname to program_invocation_short_name As we do not have cooperation from the crt0 code to set __progname, we have to set it ourselves from getprogname() in case it's NULL. On GNU systems we can use program_invocation_short_name which is actually set on crt0.
Guillem Jover 4b95e82a 2011-02-25T18:48:10 Add new radixsort and sradixsort functions Taken from FreeBSD.
Guillem Jover c766e58a 2011-02-25T18:25:17 Add man pages for heapsort and mergesort Taken from FreeBSD, originally as qsort.3 but qsort references stripped.
Guillem Jover be6ab549 2011-02-25T18:17:16 Add new mergesort function Taken from FreeBSD.
Guillem Jover 5b19adfa 2010-12-17T10:50:56 Add getpeereid function
Aurelien Jarno acb7c42d 2010-07-30T08:00:41 Add reallocf function
Guillem Jover 11f2c32d 2010-01-30T22:00:18 Fix setprogname to strip leading paths from progname
Guillem Jover 30c79408 2010-01-21T14:34:55 Make setprogname and getprogname arguments and return value const This is more correct as the strings are not going to be changed, and it matches the function signatures on other BSDs. Suggested-by: Aurelien Jarno <aurel32@debian.org>
Guillem Jover abe0a4a7 2010-01-10T11:02:13 Reformat code to KNF
Guillem Jover 2872bfa1 2010-01-10T01:41:27 Add vis and unvis man pages Taken from OpenBSD.
Guillem Jover e544a41f 2010-01-10T01:37:18 Add dehumanize_number man page link
Guillem Jover 7b3873bc 2010-01-10T01:35:27 Update vis and unvis modules from OpenBSD
Guillem Jover 8103fe14 2010-01-10T01:33:07 Update strlcat and strlcpy from OpenBSD
Guillem Jover d63e0813 2010-01-10T00:57:07 Add arc4random_buf and arc4random_uniform functions Update arc4random module from FreeBSD.
Guillem Jover 3fed78e5 2010-01-10T00:37:03 Replace setproctitle dummy macro with a function stub This way we can replace it later on with a real implementation so that applications can immediately benefit from it w/o the need to recompile them.
Guillem Jover 2a81893c 2010-01-10T00:10:21 Add pidfile functions Taken from FreeBSD. Remove MAXPATHLEN from ‘struct pidfh’ and allocate pf_path dynamically, as some systems do not have such limits. Use dev_t instead of __dev_t. Replace EDOOFUS with EINVAL.
Guillem Jover 98a2479f 2010-01-09T23:49:32 Add flopen function Taken from FreeBSD.
Guillem Jover 57cc5326 2010-01-09T20:17:16 Move man pages to the same directory as the source code This matches BSD style source tree, and makes it easier to see what's missing.
Thorsten Glaser c17c7e13 2009-12-10T18:07:25 Expand on API guarantee for fgetln OpenBSD has begun using the API guarantee that *len is not 0 if the fgetln(3) return value is not NULL; document this explicitly in the manpage and add a comment to the function implementation that this doesn’t need to be checked because getdelim/getline have similar guarantees. Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
Guillem Jover c5398adf 2009-10-24T00:19:47 Add readpassphrase function Taken from OpenBSD.
Guillem Jover 538bc879 2009-10-24T00:17:57 Add dehumanize_number function Taken from NetBSD.
Guillem Jover 04250f6a 2009-10-24T00:15:57 Add strnvis and strnunvis functions Taken from OpenBSD.
Guillem Jover 56ddcfe6 2009-10-11T21:07:53 Add strtonum function Taken from FreeBSD.
Hirokazu Takata 5ac14531 2009-08-30T12:16:01 Fix typos in M32R local-elf.h endian definitions
Nobuhiro Iwamatsu 66603975 2009-07-17T12:50:07 Fix typos in AVR32 and SH local-elf.h endian definitions
Guillem Jover 45783ae4 2009-05-29T02:45:54 Define N_SYMSIZE in case the system does not do it Fixes build failures on some non-Linux ports. Based-on-patch-by: Petr Salinger <Petr.Salinger@seznam.cz>
Guillem Jover e4aff3d9 2009-05-25T06:41:42 Use N_SYMSIZE instead of directly accessing ‘struct exec’ On Linux alpha ‘struct exec’ does not have an a_syms member, and the N_SYMSIZE is mapped to 0.
Guillem Jover 9b30dae9 2009-05-21T05:04:09 Fix typos (‘ELFDATA2MSG’ → ‘ELFDATA2MSB’)
Guillem Jover 1f0b016e 2009-05-20T04:20:21 Use UTF-8 copyright symbols for non-imported files
Guillem Jover dcaec44a 2009-05-20T04:11:57 Add nlist function
Guillem Jover 8dbfb352 2009-05-15T21:40:45 Add strmode function
Guillem Jover 74ae34e7 2009-05-15T21:26:09 Fix buffer leaks in fgetln Cache the size and the buffer allocated by getline as static variables.
Guillem Jover deb9f56c 2009-05-15T21:23:03 Change fgetln to return the correct length value Set len to 0 on error conditions to mimmic FreeBSD behaviour, and return the amount of read characters on success, instead of the allocated size by getline. Reported-by: Jief L. <jief1.l@gmail.com>
Guillem Jover ad52f2eb 2008-07-12T07:55:57 Use sigprocmask instead of _sigprocmask
Guillem Jover 38829bdc 2008-07-09T09:07:03 Add new setmode and getmode functions from FreeBSD
Guillem Jover fafffd1f 2008-07-09T08:26:07 fgetln: Fix coding style
Guillem Jover 47109e39 2008-07-09T08:22:30 fgetln: Fix function to make it actually work Reported by Thorsten Glaser.
Guillem Jover da92787d 2008-07-09T07:46:23 Ansify function arguments
Guillem Jover 1512d0d4 2008-07-09T07:22:30 Renumber 4th clause from BSD license to 3rd Those files have only three clauses.
Guillem Jover efa9658b 2008-06-18T08:51:53 Remove link_addr and link_ntoa functions The address familiy used is kernel dependent, so the application will have to be ported regardless.
Guillem Jover bf4eeb29 2008-06-18T08:44:18 Add arc4random_stir and arc4random_addrandom functions