Age | Commit message (Collapse) | Author |
|
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>
|
|
We removed the following functions:
hashmap_merge
path_is_read_only_fs
set_free_free
set_free_freep
readlink_malloc
hexchar
unhexchar
octchar
unoctchar
format_timespan
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
The following functions were removed:
strv_env_get_n
strv_env_get
conf_files_list
hashmap_remove
hashmap_move
log_dump_internal
parse_uid
read_full_file
strstrip
file_in_same_dir
cunescape
cunescape_length
cunescape_length_with_prefix
xescape
dirent_is_file
close_all_fds
read_one_char
ask
reset_terminal_fd
reset_terminal
flush_fd
loop_read
get_ctty_devnr
get_ctty
rm_rf_children
rm_rf_children_dangerous
rm_rf
status_vprintf
fd_columns
columns
fd_lines
lines
on_tty
ellipsize
ellipsize_mem
touch
unquote
resolve_dev_console
tty_is_vc
vtnr_from_tty
terminal_vhangup_fd
terminal_vhangup
file_is_priv_sticky
signal_from_string
fd_wait_for_event
memdup
memdup_multiply
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
src/libudev/{hashmap,log,path-util,set,strv,util}
We remove the following functions:
cleanup_pool
uint64_hash_func
hashmap_ensure_allocated
hashmap_clear_free_free
hashmap_replace
hashmap_remove_and_put
hashmap_iterate_skip
hashmap_first
hashmap_first_key
hashmap_last
hashmap_isempty
hashmap_move_one
hashmap_copy
log_metav_object
log_show_color
log_show_location
path_strv_make_absolute_cwd
path_startswith
set_remove
set_move
set_clear
strv_find
strv_contains
strv_merge
strv_split
strv_split_quoted
strv_append
strv_extend
strv_push
strv_split_nulstr
str_compare
dual_timestamp_get
dual_timestamp_from_realtime
timespec_store
timeval_load
timeval_store
parse_boolean
fchmod_umask
parse_env_file
get_process_comm
get_process_id
readlink_and_make_absolute
bus_path_unescape
format_timestamp
acquire_terminal
loop_write
parse_usec
make_stdio
random_ull
lookup_uid
getttyname_malloc
status_printf
replace_env
normalize_env_assignment
wait_for_terminate
freeze
tag_to_udev_node
tty_is_vc_resolve
nulstr_contains
strshorten
hostname_valid_char
display_is_local
get_group_creds
in_gid
dirent_ensure_type
is_locale_utf8
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
We remove the following unused functions:
ascii_strlower
block_get_whole_disk
bus_path_escape
can_sleep
can_sleep_disk
cescape
chars_intersect
chvt
close_many
close_pipe
columns_lines_cache_reset
copy_file
cpu_set_malloc
decchar
default_signals
default_term_for_tty
delete_chars
dir_is_empty
draw_special_char
dual_timestamp_deserialize
dual_timestamp_serialize
execute_directory
fchmod_and_fchown
fd_cloexec
fd_inc_rcvbuf
fd_nonblock
filename_is_safe
first_word
fork_agent
format_bytes
format_timestamp_pretty
fstab_node_to_udev_node
fstype_is_network
getenv_for_pid
get_files_in_directory
get_home_dir
gethostname_malloc
getlogname_malloc
get_parent_of_pid
get_process_cmdline
get_process_exe
get_process_gid
get_process_uid
get_starttime_of_pid
getttyname_harder
get_user_creds
getusername_malloc
glob_exists
hostname_cleanup
hostname_is_set
hostname_is_valid
ignore_signals
in_charset
in_group
in_search_path
is_device_path
is_kernel_thread
is_valid_documentation_url
kexec_loaded
kill_and_sigcont
load_env_file
make_console_stdio
make_null_stdio
parse_bytes
parse_nsec
parse_pid
parse_timestamp
pipe_eof
plymouth_running
prot_from_flags
readlink_and_canonicalize
release_terminal
rename_process
replace_env_argv
reset_all_signal_handlers
rmdir_parents
rm_rf_dangerous
running_in_chroot
setrlimit_closest
sigaction_many
signal_from_string_try_harder
sigset_add_many
socket_from_display
startswith_no_case
status_welcome
strdup_or_null
string_is_safe
strreplace
symlink_atomic
tty_is_console
undecchar
vt_disallocate
wait_for_terminate_and_warn
warn_melody
write_env_file
write_one_line_file_atomic
xopendirat
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|