summaryrefslogtreecommitdiff
path: root/src/libudev
AgeCommit message (Collapse)Author
2014-05-13src/libudev/missing.h: clean up and fix build on uclibc and muslAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-05-01src/libudev/path-util.c: don't use IN_SET() macroAnthony G. Basile
We do not import this macro which is unnecessarily complex for this one case. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-26udev: warn when name_to_handle_at is not implementedZbigniew Jędrzejewski-Szmek
We have a bunch of reports from people who have a custom kernel and are confused why udev is not running. Issue a warning on error. Barring an error in the code, the only error that is possible is ENOSYS. https://bugzilla.redhat.com/show_bug.cgi?id=1072966
2014-04-26util: make sure all our name_to_handle_at() code makes use of file_handle_unionLennart Poettering
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-26implement a union to pad out file_handleDave Reisner
Cases where name_to_handle_at is used allocated the full struct to be MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong since handle_bytes should describe the length of the flexible array member and not the whole struct. Define a union type which includes sufficient padding to allow assignment of MAX_HANDLE_SZ to be correct. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-24src/libudev: whitespace cleanupAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-24udev: remove seqnum API and all assumptions about seqnumsKay Sievers
The way the kernel namespaces have been implemented breaks assumptions udev made regarding uevent sequence numbers. Creating devices in a namespace "steals" uevents and its sequence numbers from the host. It confuses the "udevadmin settle" logic, which might block until util a timeout is reached, even when no uevent is pending. Remove any assumptions about sequence numbers and deprecate libudev's API exposing these numbers; none of that can reliably be used anymore when namespaces are involved. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-04libudev: Fix redefinition of usec_t and nsec_t.Eric Le Bihan
The type definitions usec_t and nsec_t where defined twice: in path-util.h and util.h. time-util.h and time-util.c now gather the time-related functions and definitions (as in upstream systemd). Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr> Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-04-03configure.ac: bring version numbers in line with upstreamAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-02-21Add missing REENABLE_WARNING and unlink_noerrno()Anthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-02-21macro: introduce a nice macro for disabling -Wformat-nonliteral temporarilyAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-02-21everywhere: make use of new0() and macro() macros, and stop using perror()Lennart Poettering
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-02-02use memzero(foo, length); for all memset(foo, 0, length); callsGreg KH
In trying to track down a stupid linker bug, I noticed a bunch of memset() calls that should be using memzero() to make it more "obvious" that the options are correct (i.e. 0 is not the length, but the data to set). So fix up all current calls to memset(foo, 0, length) to memzero(foo, length). Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-25src/libudev/util.h: import FORMAT_TIMESPAN_MAX for selinuxAnthony G. Basile
When configure --enable-selinux, we hit a compile time error with a missing definition of FORMAT_TIMESPAN_MAX. This was imported from upstream's src/shared/time-util.h into our src/libudev/util.h. Thanks Amadeusz Sławiński <amade@asmblr.net> X-Gentoo-Bug: 499252 X-Gentoo-Bug-URL: https://bugs.gentoo.org/499252 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-20libudev-util.c: Handle -1 return from sysconf(_SC_GET{PW,GR}_R_SIZE_MAX)Michael Forney
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>
2014-01-20libudev-util.c: Fix sysconf variable for util_lookup_groupMichael Forney
Signed-off-by: Michael Forney <mforney@mforney.org>
2014-01-20libudev/sparse-endian.h: include header which defines __bswap_XXrofl0r
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-20libudev/path-util.c: remove usage of canonicalize_file_name()rofl0r
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>
2014-01-14src/libudev: bring in line with upstreamAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-13src/udev: bring up to date with upstream.Anthony G. Basile
These commits were authored by Zbigniew Jędrzejewski-Szmek Tom Gundersen Kay Sievers Lennart Poettering Shawn Landden Daniel Buch Martin Pitt Karel Zak Yang Zhiyong Note: udev_builtin_net_setup_link has *not* been imported. Also still missing from udev-builtin is udev_builtin_uaccess. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-11src/udev/path-util.[ch]: remove duplicatesAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09libudev: ship the original MurmurHash2.[ch] fileKay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09src/libudev/util.h: add missing FOREACH_LINEAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09libudev: monitor - only disallow "udev" type eventsKay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09libudev: disable monitor inside a containerKay Sievers
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>
2014-01-09bus: catch up with kdbus changesKay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09libudev: devices received from udev are always initializedKay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09Add more _printf_'s for format-nonliteralsThomas Hindoe Paaboel Andersen
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>
2014-01-09libudev: hwdb - use libudev not systemd loggingKay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09docs: remove unneeded the's in gudev docsZbigniew Jędrzejewski-Szmek
https://bugs.freedesktop.org/show_bug.cgi?id=72164 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09libudev: always return NULL in _unref() APIsLennart Poettering
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>
2014-01-09libudev: always return valid negative error codes on API functionsLennart Poettering
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09Remove duplicate includesKarel Zak
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09udev: declare some symbols staticKay Sievers
2014-01-09udev: declare some symbols staticKay Sievers
2014-01-09libudev: default log_priority to INFOTom Gundersen
This brings it in sync with the default config file. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09macro: clean up usage of gcc attributesLennart Poettering
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09build-sys: libudev - get rid of the needless selinux linking (again)Kay Sievers
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-01-09Never call qsort on potentially NULL arraysZbigniew Jędrzejewski-Szmek
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>
2014-01-09device-nodes: move device node specific code to own fileDave Reisner
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>
2014-01-09move utf8 functions from libudev-private.h to utf8.hDave Reisner
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>
2013-10-25libudev-util.c: Handle -1 return from sysconf(_SC_GET{PW,GR}_R_SIZE_MAX)Michael Forney
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>
2013-10-25libudev-util.c: Fix sysconf variable for util_lookup_groupMichael Forney
Signed-off-by: Michael Forney <mforney@mforney.org>
2013-09-26src/libudev/log.c: remove code to log to journalAnthony G. Basile
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>
2013-09-14libudev: fix move_later comparisoneudev/v1.3Lukas Nykryn
At the beginning move_later is set to -1, but it is set to different value only if expression !move_later is true.
2013-09-10src/libudev/util.c: reintroduce cescape and octcharAnthony G. Basile
2013-09-10libudev: enumerate - do not try to match against an empty subsystemKay Sievers
2013-09-10libudev: enumerate: fix NULL-deref for subsystem-matchesDavid Herrmann
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
2013-09-10libudev: fix memleak when enumerating childsDavid Herrmann
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.
2013-09-10libudev-enumerate.c:udev_enumerate_get_list_entry() fixed possible stale pointerHarald Hoyer
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.