summaryrefslogtreecommitdiff
path: root/src/libudev
Commit message (Collapse)AuthorAge
* udev: warn when name_to_handle_at is not implementedZbigniew Jędrzejewski-Szmek2014-04-24
| | | | | | | | | 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
* util: make sure all our name_to_handle_at() code makes use of file_handle_unionLennart Poettering2014-04-24
|
* implement a union to pad out file_handleDave Reisner2014-04-21
| | | | | | | | | | 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.
* udev: remove seqnum API and all assumptions about seqnumsKay Sievers2014-04-13
| | | | | | | | | | | | 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.
* everywhere: make use of new0() and macro() macros, and stop using perror()Lennart Poettering2014-02-13
|
* use memzero(foo, length); for all memset(foo, 0, length); callsGreg KH2014-01-31
| | | | | | | | 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).
* libudev: ship the original MurmurHash2.[ch] fileKay Sievers2013-12-23
|
* remove unused variableThomas Hindoe Paaboel Andersen2013-12-19
|
* libudev: monitor - only disallow "udev" type eventsKay Sievers2013-12-18
|
* libudev: disable monitor inside a containerKay Sievers2013-12-18
| | | | | | 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.
* bus: catch up with kdbus changesKay Sievers2013-12-18
|
* libudev: devices received from udev are always initializedKay Sievers2013-12-18
|
* Add more _printf_'s for format-nonliteralsThomas Hindoe Paaboel Andersen2013-12-14
| | | | | | | | | | | 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.
* libudev: hwdb - use libudev not systemd loggingKay Sievers2013-12-10
|
* docs: remove unneeded the's in gudev docsZbigniew Jędrzejewski-Szmek2013-11-30
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=72164
* libudev: always return NULL in _unref() APIsLennart Poettering2013-11-20
| | | | | | | | | | | | | 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.
* libudev: always return valid negative error codes on API functionsLennart Poettering2013-11-20
|
* Remove duplicate includesKarel Zak2013-11-18
|
* udev: declare some symbols staticKay Sievers2013-11-13
|
* udev: declare some symbols staticKay Sievers2013-11-12
|
* libudev: default log_priority to INFOTom Gundersen2013-10-30
| | | | This brings it in sync with the default config file.
* macro: clean up usage of gcc attributesLennart Poettering2013-10-16
| | | | Always use our own macros, and name all our own macros the same style.
* build-sys: libudev - get rid of the needless selinux linking (again)Kay Sievers2013-10-15
|
* Never call qsort on potentially NULL arraysZbigniew Jędrzejewski-Szmek2013-10-13
| | | | | | 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.
* device-nodes: move device node specific code to own fileDave Reisner2013-09-19
| | | | | | | | 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.
* libudev: add missing 'global' to symbol exportKay Sievers2013-09-17
|
* move utf8 functions from libudev-private.h to utf8.hDave Reisner2013-09-17
| | | | | | | | 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.
* libudev: fix move_later comparisonLukas Nykryn2013-09-13
| | | | | At the beginning move_later is set to -1, but it is set to different value only if expression !move_later is true.
* libudev: enumerate - do not try to match against an empty subsystemKay Sievers2013-09-04
|
* libudev: enumerate: fix NULL-deref for subsystem-matchesDavid Herrmann2013-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* libudev: fix memleak when enumerating childsDavid Herrmann2013-09-04
| | | | | | 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.
* libudev-enumerate.c:udev_enumerate_get_list_entry() fixed possible stale pointerHarald Hoyer2013-08-19
| | | | | | | | 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.
* typo fixes in man and commentsThomas Hindoe Paaboel Andersen2013-08-15
|
* libudev: fix hwdb validation to look for the *new* fileKay Sievers2013-08-15
|
* hwdb: add --device=<device-id> and --filter=<key name glob>Kay Sievers2013-07-01
|
* hwdb: remove support for (not fully implemented) conditional propertiesKay Sievers2013-07-01
|
* Use stdint.h macros instead of casts to print uint64_t valuesZbigniew Jędrzejewski-Szmek2013-06-10
| | | | Casts are visually heavy, and can obscure unwanted truncations.
* libudev: remove udev_monitor_new_from_socket() symbolMichael Biebl2013-04-16
| | | | | This function was removed in v183, so drop it from the symbols versioning file.
* libudev: Move -lrt to Libs.privateMichael Biebl2013-04-09
| | | | | | It's only needed for static linking. https://bugs.freedesktop.org/show_bug.cgi?id=63309
* Remove some dead codeZbigniew Jędrzejewski-Szmek2013-03-31
| | | | Based on coverity report.
* libudev: avoid potential misaligned accessesJan Engelhardt2013-03-20
| | | | | | | clang reports: src/libudev/libudev-util.c:665:35: warning: cast from "const unsigned char *" to "unsigned int *" increases required alignment from 1 to 4 [-Wcast-align]
* libude: remove special handling of "device" link, it should not be usedKay Sievers2013-03-20
|
* libudev: implement udev_device_set_attribute_value()Hannes Reinecke2013-03-13
|
* use streq instead of strcmpThomas Hindoe Paaboel Andersen2013-02-13
|
* use strneq instead of strncmpThomas Hindoe Paaboel Andersen2013-02-13
|
* udev: remove HWDB_BINKay Sievers2013-02-07
|
* udev: move string copy functions to shared/Kay Sievers2013-01-09
|
* udev: net_id - append "dev_id" value if neededKay Sievers2013-01-04
|
* udev: in addition to DEVMODE, honor DEVUID, DEVGID from the ueventKay Sievers2012-12-31
|
* Fix "attribute 'packed' is ignored" warnings when using ClangRichard Yao2012-12-17
| | | | | | | | Clang 3.1 warned that "attribute 'packed' is ignored". This stems from placing "__attribute__ ((packed))" at the start of structure declarations when common practice is to place it at the end. Signed-off-by: Richard Yao <ryao@gentoo.org>