Age | Commit message (Collapse) | Author |
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Uevents are events of the host, which should not leak into a container.
Containers do not support hotplug at the moment, and devices and uevents
are not namespace aware.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Clang is a bit more strict wrt format-nonliterals:
http://clang.llvm.org/docs/LanguageExtensions.html#format-string-checking
Adding these extra printf attributes also makes gcc able to find more
problems. E.g. this patch uncovers a format issue in udev-builtin-path_id.c
Some parts looked intetional about breaking the format-nonliteral check.
I added some supression for warnings there.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=72164
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Returning anything else but NULL would suggest the caller's reference
might still be valid, but it isn't, because the caller just invoked
_unref() after all.
This turns the return value into a typesafe shortcut that allows
unreffing and resetting a reference in one line. In contrast to
solutions for this which take a pointer to a pointer to accomplish the
same this solution is just syntactic sugar the developer can make use of
but doesn't have to, and this is particularly useful when immediately
unreffing objects returned by function calls.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
|
|
|
|
This brings it in sync with the default config file.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
This extends 62678ded 'efi: never call qsort on potentially
NULL arrays' to all other places where qsort is used and it
is not obvious that the count is non-zero.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
In the process, rename udev_encode_string which is poorly named
for what it does. It deals specifically with encoding names that
udev creates and has its own rules: utf8 is valid but some ascii
is not (e.g. path separators), and everything else is simply escaped.
Rename it to encode_devnode_name.
Adopted for eudev: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
There's now some more obvious overlap amongst the two
utf8 validation functions, but no more than there already
was previously. This also adds some menial tests for anyone
who wants to do more merging of these two in the future.
Adopted for eudev: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
POSIX says:
Note that sysconf(_SC_GETGR_R_SIZE_MAX) may return -1 if there is no
hard limit on the size of the buffer needed to store all the groups
returned.
The example from POSIX uses a default buffer size of 1024 in that case.
Signed-off-by: Michael Forney <mforney@mforney.org>
|
|
Signed-off-by: Michael Forney <mforney@mforney.org>
|
|
We remove all code which logs to the journal, preserving only
write_to_console(), write_to_syslog() and write_to_kmsg().
https://github.com/gentoo/eudev/issues/77
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
At the beginning move_later is set to -1, but it is set to different
value only if expression !move_later is true.
|
|
|
|
|
|
udev_device_get_subsystem() may return NULL if no subsystem could be
figured out by libudev. This might be due to OOM or if the device
disconnected between the udev_device_new() call and
udev_device_get_subsystem(). Therefore, we need to handle subsystem==NULL
safely.
Instead of testing for it in each helper, we treat subsystem==NULL as
empty subsystem in match_subsystem().
Backtrace of udev_enumerate with an input-device disconnecting in exactly
this time-frame:
(gdb) bt
#0 0x00007ffff569dc24 in strnlen () from /usr/lib/libc.so.6
#1 0x00007ffff56d9e04 in fnmatch@@GLIBC_2.2.5 () from /usr/lib/libc.so.6
#2 0x00007ffff5beb83d in match_subsystem (udev_enumerate=0x7a05f0, subsystem=0x0) at src/libudev/libudev-enumerate.c:727
#3 0x00007ffff5bebb30 in parent_add_child (enumerate=enumerate@entry=0x7a05f0, path=<optimized out>) at src/libudev/libudev-enumerate.c:834
#4 0x00007ffff5bebc3f in parent_crawl_children (enumerate=enumerate@entry=0x7a05f0, path=0x7a56b0 "/sys/devices/<shortened>/input/input97", maxdepth=maxdepth@entry=254) at src/libudev/libudev-enumerate.c:866
#5 0x00007ffff5bebc54 in parent_crawl_children (enumerate=enumerate@entry=0x7a05f0, path=0x79e8c0 "/sys/devices/<shortened>/input", maxdepth=maxdepth@entry=255) at src/libudev/libudev-enumerate.c:868
#6 0x00007ffff5bebc54 in parent_crawl_children (enumerate=enumerate@entry=0x7a05f0, path=path@entry=0x753190 "/sys/devices/<shortened>", maxdepth=maxdepth@entry=256) at src/libudev/libudev-enumerate.c:868
#7 0x00007ffff5bec7df in scan_devices_children (enumerate=0x7a05f0) at src/libudev/libudev-enumerate.c:882
#8 udev_enumerate_scan_devices (udev_enumerate=udev_enumerate@entry=0x7a05f0) at src/libudev/libudev-enumerate.c:919
#9 0x00007ffff5df8777 in <random_caller> () at some/file.c:181
|
|
We need to free udev-devices again if they don't match. Funny that no-one
noticed it yet since valgrind is quite verbose about it.
Fix it and free non-matching devices.
|
|
If a realloc() happens in syspath_add(), the move_later pointer could
point to an invalid memory region.
Let move_later store the array index, instead of the pointer to the
entry.
|
|
|
|
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
sys/poll.h is a legacy alias used by glibc.
according to POSIX #include <poll.h> is correct.
on GLIBC, the POSIX header includes sys/poll.h, so everything
continues working as it should.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
this is a glibc specific alias for realpath(path, NULL).
to be portable, we need to use the real thing which is even less
verbose.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
If we pass a variable to open()'s flags parameter it really wants a mode
parameter too, otherwise some gcc version whine. Hence, pass 0 in that
case.
|
|
We reorder the functions prototypes and definitions to match
upstream as in commit aa417a4d83999f6d7f092161d5c411b8cbce9977.
The order was lost when that commit was revert and the functions
re-introduced in later commits.
Preserving the order helps to better track upstream changes when
doing a diff between files.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Based on systemd commit fb624d04e56018defe297eff1d88888b192caeaa , added
to support commit f8e6d758cd65b28f94b62344bd95e7bab94370d4
Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
|
|
This is a partial combination of two systemd commits:
5926cccae202f1b8869017d4bdaf9e9ce371bba6
4fe88d28a4cfa504c1f2362d4a7030fae4c4af29
...and provides functions needed for the changes that were added
in commit 6284c1ca41dca85e968e8d304cdc154c5a46d6d2
Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
|
|
A portion of systemd commit 4fe88d28a4cfa504c1f2362d4a7030fae4c4af29 , needed to
support changes made by commit 6284c1ca41dca85e968e8d304cdc154c5a46d6d2
Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
|
|
This reverts commit aa417a4d83999f6d7f092161d5c411b8cbce9977.
Preface: The kmod+tmpfiles static dev-node creation requires two commands to
be executed at runtime -- it is not something that will automatically occur
without a system's setup being explicitly designed or changed so that these
commands are executed.
Preface2: In order for the kmod+tmpfiles static dev-node creation to work
properly, that -must- be executed at startup before {systemd-,}udevd starts.
The reason for this is because udevd will only set permissions on those files
at startup, and so if udevd starts beforehand then these nodes will exist with
permissions that are (probably) too restrictive.
The function in udevd which creates static-nodes is non-fatal and only updates
mtime on the devnodes if they already exist. As such, if a system is configured
to execute kmod+tmpfiles to create static-nodes, because that must occur first,
eudev's udevd will not conflict. Also, if a system does not execute kmod+tmpfiles,
then eudev will still create the static devnodes, even if kmod-14 or higher is
installed.
There *may* be a conflict if kmod+tmpfiles is executed after udevd starts, but
as per "preface2" this is not a supported configuration.
Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
|
|
This address upstream commit edeb68c53f1cdc452016b4c8512586a70b1262e3
and https://bugs.gentoo.org/show_bug.cgi?id=477890. If eudev is
configured with --enable-libkmod then we check for kmod >= 14 and
ifdef out the code removed in the upstream commit. Otherwise we
retain it for modutils.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
This is part of upstream commit
9444b1f20e311f073864d81e913bd4f32fe95cfd
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
This commit imports strxcpyx from upstream. This is upstream commit
d5a89d7dc17a5ba5cf4fc71f82963c5c94a31c3d
Note: there were also some very minor code cleanups to
accelerometer.c: line 187
collect.c: lines 35, 140
libudev-device.c: line 780
libudev-hwdb.c: line 300
These are part of upstream commits:
507f22bd0172bff5e5d98145b1419bd472a2c57f
3cf7b686e6b29f78de0af5929602cae4482f6d49
67410e9f73a6cdd8453c78b966451b5151def14a
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
This header is unnecessary and causes a buildtime error on musl.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Remove the following unused DECLS:
IOPRIO_BITS
IOPRIO_CLASS_SHIFT
IOPRIO_PRIO_MASK
IOPRIO_PRIO_CLASS
IOPRIO_PRIO_DATA
IOPRIO_PRIO_VALUE
ioprio_valid
IOPRIO_BE_NR
IOPRIO_WHO_PROCESS
IOPRIO_WHO_PGRP
IOPRIO_WHO_USER
MESSAGE_ID
EXIT_TEST_SKIP
XSTRINGIFY
STRINGIFY
ALIGN_PTR
ALIGN4_PTR
ALIGN8_PTR
MAX
MAX3
MIN
CLAMP
zero
CHAR_TO_STR
VA_FORMAT_ADVANCE
SET_FLAG
SET_FOREACH
SET_FOREACH_BACKWARDS
STRV_FOREACH_BACKWARDS
STRV_FOREACH_PAIR
_unused_
_destructor_
_deprecated_
_weak_
_hidden_
_weakref_
_introspect_
_alignas_
Remove the following unused static inline functions:
static inline int ioprio_set
static inline int ioprio_get
static inline const char* STRV_IFNOTNULL
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
The following unused DECLS are removed:
DEFAULT_TIMEOUT_USEC
DEFAULT_RESTART_USEC
DEFAULT_CONFIRM_USEC
DEFAULT_EXIT_USEC
SIGNALS_CRASH_HANDLER
SIGNALS_IGNORE
EXIT_INVALIDARGUMENT
EXIT_NOTIMPLEMENTED
EXIT_NOPERMISSION
EXIT_NOTINSTALLED
EXIT_NOTCONFIGURED
EXIT_NOTRUNNING
EXIT_CHDIR
EXIT_NICE
EXIT_FDS
EXIT_EXEC
EXIT_MEMORY
EXIT_LIMITS
EXIT_OOM_ADJUST
EXIT_SIGNAL_MASK
EXIT_STDIN
EXIT_STDOUT
EXIT_CHROOT
EXIT_IOPRI
EXIT_TIMERSLACK
EXIT_SECUREBITS
EXIT_SETSCHEDULER
EXIT_CPUAFFINITY
EXIT_GROUP
EXIT_USER
EXIT_CAPABILITIES
EXIT_CGROUP
EXIT_SETSID
EXIT_CONFIRM
EXIT_STDERR
EXIT_TCPWRAP
EXIT_PAM
EXIT_NETWORK
EXIT_NAMESPACE
EXIT_NO_NEW_PRIVILEGES
EXIT_SECCOMP
EXIT_STATUS_MINIMAL
EXIT_STATUS_SYSTEMD
EXIT_STATUS_LSB
EXIT_STATUS_FULL
HASHMAP_FOREACH_KEY
HASHMAP_FOREACH_BACKWARDS
FORMAT_TIMESTAMP_MAX
FORMAT_TIMESTAMP_PRETTY_MAX
FORMAT_TIMESPAN_MAX
FORMAT_BYTES_MAX
ANSI_HIGHLIGHT_ON
ANSI_RED_ON
ANSI_HIGHLIGHT_RED_ON
dual_timestamp_is_set
newa
newdup
FOREACH_WORD
FOREACH_WORD_SEPARATOR
NULSTR_FOREACH
_cleanup_pclose_
_cleanup_umask_
_cleanup_globfree_
DRAW_TREE_VERT
DRAW_TREE_BRANCH
DRAW_TREE_RIGHT
DRAW_TREE_SPACE
DRAW_TRIANGULAR_BULLET
_DRAW_SPECIAL_CHAR_MAX
FOREACH_LINE
procfs_file_alloca
The following unused struct defs were removed:
struct ExitStatusSet
The following unused static inline funcs were remvoed:
static inline int safe_atolu
static inline int safe_atoli
static inline int safe_atolu
static inline int safe_atoli
static inline int safe_atou32
static inline int safe_atoi32
static inline int safe_atou64
static inline int safe_atoi64
static inline const char* yes_no
static inline const char* strempty
static inline const char* strnull
static inline const char *strna
static inline void pclosep
static inline void umaskp
NOTE: Some unused DECLS were retained if they formed part of a logical
series, eg. definition of time units.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|