summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2017-12-24Fix one possible buffer overflow and one underflow. Also some minorTodd C. Miller
cleanups. From Jan Kokemueller. OK deraadt@
2017-12-18Add call to fuse_remove_signal_handlers(3) in fuse_teardown(3) to do thehelg
opposite of fuse_setup(3). ok mpi@
2017-12-18Refactor libfuse option processing to better support options in thehelg
future. Immediate benefits are that gid, uid and umask are now supported and max_read is now honoured for all file systems. Mounting read_only is now possible but requires more thorough testing. ok mpi@
2017-12-18let's not try to document the number of items in a list...Jason McIntyre
2017-12-18Add the CLOCK_BOOTTIME clockid for use with clock_gettime(2)cheloha
and put it to use in userspace in lieu of the kern.boottime sysctl. Its absolute value is the time that has elapsed since the system booted, i.e., the system uptime. Use in top(1), w(1), and snmpd(8) eliminates a race with settimeofday(2), adjtime(2), etc. inherent to deriving the system uptime via the kern.boottime sysctl. Product of a great deal of discussion/revision with jca@, tb@, and guenther@. ok tb@ jca@ guenther@ dlg@ mlarkin@ tom@
2017-12-16Move __cxa_thread_atexit* to its own .c file to avoid pulling the codePhilip Guenther
(w/ _dlctl reference) into static executables. It's all Mark's code so put his preferred copyright on it. ok kettenis@
2017-12-16Don't use _libc_ prefix when referencing "builtin" symbols with clang.Mark Kettenis
Slightly tweaked diff from guenther@
2017-12-15Export only symbols to what's declared in fuse.h/fuse_opt.hJeremie Courreges-Anglas
While here, use guenther's magic recipe to avoid the PLT when calling exported symbols from within the library. ok kettenis@ for v1, ok guenther@ helg@
2017-12-15Fix formatting of libfuse version info.helg
ok mpi@
2017-12-14Simplify and unify timespec variables used in those event loopsJeremie Courreges-Anglas
ok millert@
2017-12-14Add Symbols.map to explicitly define the ABIs, hiding linker defined symbols.Philip Guenther
Use hidden aliases for internal invocations of exported symbols to avoid PLT. ok deraadt@ kettenis@ jca@
2017-12-14Use CLOCK_MONOTONIC for the rpc event loopsJeremie Courreges-Anglas
From Scott Cheloha, ok deraadt@ tb@
2017-12-14Add a missing call to fuse_set_signal_handlers(3) in fuse_setup(3) so thathelg
any file systems that call fuse_setup(3) or fuse_main(3) trap signals gracefully. ok mpi@
2017-12-14Drop -g from CFLAGS, bsd.lib.mk adds it by defaultJeremie Courreges-Anglas
ok mpi@ helg@
2017-12-14fuse_opt_add_opt_escaped needs to allocate space for the terminating NULJeremie Courreges-Anglas
Spotted by malloc.conf -> S, ok helg@
2017-12-14Free FUSE channel if fuse_new(3) fails in fuse_setup(3).helg
ok mpi@
2017-12-14Make a few internal symbols static and add a Symbols.map version scriptMark Kettenis
to control which symbols are exported from the shared library. ok guenther@, deraadt@, jca@
2017-12-13Add support for the -d (-o debug) option to libfuse. Currently works for FUSEhelg
file systems that call fuse_parse_cmdline(3), fuse_main(3) or fuse_setup(3). ok mpi@, jca@
2017-12-13If the list of templates 'o' passed to fuse_opt_parse(3) is NULL thenhelg
the processing function should be called in the same way as if no match was found. ok mpi@
2017-12-12Consistently use .Va for "errno";Ingo Schwarze
patch from Jan Stary <hans at stare dot cz>; "I think it makes sense to speak about errno as a variable (.Va)" jca@.
2017-12-12space required between macro arg and punctuation;Jason McIntyre
2017-12-12pledge()'s 2nd argument becomes char *execpromises, which becomes theTheo de Raadt
pledge for a new execve image immediately upon start. Also introduces "error" which makes violations return -1 ENOSYS instead of killing the program ("error" may not be handed to a setuid/setgid program, which may be missing/ignoring syscall return values and would continue with inconsistant state) Discussion with many florian has used this to improve the strictness of a daemon
2017-12-11sscanf(3) is now used to parse templates that contain format specifiershelg
(e.g. %u, %o) other than %s. This aligns libfuse with the Linux reference implementation. ok mpi@
2017-12-11Update to fuse_opt_parse(3) so that all option templates are now matched forhelg
the supplied option. This allows the following templates to be supplied to set multiple members of a struct at the same time. e.g. #define FUSE_LIB_OPT(t, p, v) { t, offsetof(struct fuse_config, p), v } static const struct fuse_opt fuse_lib_opts[] = { FUSE_LIB_OPT("gid=", set_gid, 1), FUSE_LIB_OPT("gid=%u", gid, 0), FUSE_OPT_END }; If "-ogid=1000" is passed to fuse_opt_parse(3) it will set both: fuse_config.set_gid=1 fuse_config.gid=1000 ok mpi@
2017-12-11The fuse_opt_match(3) library function does not match options correctly.helg
libfuse supports option templates of the following form that can be used to automatically parse arguments supplied on the command line. "-p " argument that takes an option e.g -p 22 or -p22 "-p %x" argument that takes an option parsed like sscanf(3) "cache=yes" matches -ocache=yes or -o cache=yes "cache=%s" matches -ocache=<string> or -o cache=<string> "cache=" matches same as above but value is passed to option proc "noatime" matches -onoatime or -o atime For example, it does not match options of the form "-p 22" or "cache=yes" to the corresponding templates "-p " and "cache=yes". This patch fixes that and updates the regression tests accordingly. ok mpi@
2017-12-11bump to 2.7.0Brent Cook
2017-12-11http://repzret.org/p/repzret/Theo de Raadt
My read of this: Long time ago (Think Conan, not dinasaurs) during the race to make speedier processors, a cpu vendor built a pipeline with a bad stall, and proposed a tremendously hasky workaround. A wizard adopted this into his perl scroll, and failed to reflect later when no compiler adopted the practice. This relic remains at the tail end of some functions in OpenSSL as ".byte 0xf3,0xc3". Banish it straight to hell. ok mlarkin, others also stared blankly
2017-12-09Make tls_config_parse_protocols() work correctly when passed a NULL pointerJoel Sing
for a protocol string. Issue found by semarie@, who also provided the diff.
2017-12-09In the middle of CRYPTO_gcm128_finish() there is a complicated #ifdefTheo de Raadt
block which defines a variable late, after code. Place this chunk into a { subblock } to satisfy old compilers and old eyes.
2017-12-09Please variable decl before code.Theo de Raadt
2017-12-08Fix the return value of fwscanf(3) when encountering an early matchingKevin Lo
failure. This change brings fwscanf(3) back in line with fscanf(3). From FreeBSD; ok deraadt@, millert@
2017-12-07* clean up macro usage: use .Ar for command arguments, .Cm for fixedIngo Schwarze
strings to be used in commands, and .Li for example strings * clarify what uses the two environment variables, and that only these two are ignored for issetugid(2) programs triggered by a question from Jan Stary <hans at stare dot cz> feedback and OK ratchov@
2017-12-06It's the imsg_compose(3) who accepts 'fd' argument, not imsg_create(3).Vadim Zhukov
2017-12-05Remove DEF_STRONG(__cxa_thread_atexit_impl). This produces an unwantedMark Kettenis
_libc___cxa_thread_atexit_impl reference on gcc architectures that breaks the build.
2017-12-05Implement __cxa_thread_atexit to support C++11 thread_local scope. TheMark Kettenis
interface is also made available as __cxa_thread_atexit_impl to satisfy the needs of GNU libstdc++. ok guenther@, millert@
2017-12-01Redo the calculation of the alignment and placement of static TLS data toPhilip Guenther
correctly take into account the segment p_align. Previously, anything with a size belong the natural alignment or with alignment larger than the natural one would either not be intialized correctly, be misaligned, or result in the TIB being misaligned. Problems reported by Charles Collicutt (charles (at) collicutt.co.uk) ok kettenis@
2017-12-01Consistently .Xr the corresponding wide char functions from char- andIngo Schwarze
string-handling <stdio.h> functions, like we already do it for <string.h>. Includes a smaller patch from <kshe59 at zoho dot eu>, OK jmc@.
2017-12-01add missing argument name; from <kshe59 at zoho dot eu>; OK jmc@;Ingo Schwarze
while here, consistently use .Fo to cure execessive line lengths
2017-11-30vn_open(9) does not pass the open(2) flags to VOP_CREATE(9) so we can'thelg
support FBT_CREATE. Fall back to FBT_MKNOD + FBT_OPEN so that a valid sequence of FUSE messages is sent to the file system when creating files. input from mpi@, otto@
2017-11-29clang doesn't propagate attributes like "asm labels" and "visibility(hidden)"Philip Guenther
to builtins like mem{set,cpy,move} and __stack_smash_handler. So, when building with clang, instead mark those as protected visibility to get rid of the PLT relocations. We can't take the address of them then, but that's ok: it's a build-time error not a run-time error. ok kettenis@
2017-11-28Add the missing STANDARDS section (kettenis@ noticed that these areIngo Schwarze
POSIX functions) and turn the weird DIAGNOSTICS section into a normal RETURN VALUES section while here.
2017-11-28Rewrite ASN1_TYPE_{get,set}_octetstring() using templated ASN.1.Joel Sing
This removes the last remaining use of the old M_ASN1_* macros (asn1_mac.h) from API that needs to continue to exist. ok beck@ inoguchi@
2017-11-28Correct TLS extensions handling when no extensions are present.Joel Sing
If no TLS extensions are present in a client hello or server hello, omit the entire extensions block, rather than including it with a length of zero. ok beck@ inoguchi@
2017-11-28Add CBB_discard_child(), which allows for a child CBB to be discarded.Joel Sing
Based on BoringSSL.
2017-11-28GNU ld has prefixed the contents of .gnu.warning.SYMBOL sectionsTheo Buehler
with "warning: " since 2003, so the messages themselves need not contain the prefix anymore. From Scott Cheloha ok jca, deraadt
2017-11-28Delete fktrace(2). The consequences of it were not thought throughPhilip Guenther
sufficiently and at least one horrific security hole was the result. ok deraadt@ beck@
2017-11-26Add support for -f option to libfuse. This keeps the FUSE file systemhelg
running in the foreground. ok mpi@
2017-11-22Avoid .align 0 here as well. Also fix a .word that should be a .quad.Mark Kettenis
ok patrick@
2017-11-21Avoid .align 0. Clang's integrated assembler actually honors this directiveMark Kettenis
and the resulting byte-alignment triggers unaligned access. ok patrick@, deraadt@
2017-11-21Use a simple forward search to find '%' in the format string instead ofTheo Buehler
using mbrtowc(3). Thus, we now treat the format string as a bytestring, not as a multibyte character string. We think that ANSI C made a small error when adding wide characters: The committees essentially replaced "characters" with "wide characters" in the existing printf documentation, which was written before the concept of processing was established. Doing processing on the format string would break some 8-bit format strings in the wild, and that isn't something these committees gave themselves license to do. Based on the "10x printf speedup" commit from android found by tedu: https://github.com/aosp-mirror/platform_bionic/commit/5305a4d4a723b06494b93f2df81733b83a0c46d3 Thanks to millert and schwarze for digging into the history and testing *printf behavior on other platforms. ok deraadt, millert