summaryrefslogtreecommitdiff
path: root/src/libudev/util.c
AgeCommit message (Collapse)Author
2014-08-05src/shared: refactor shared codeAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-08-04Reject invalid quoted stringsZbigniew Jędrzejewski-Szmek
String which ended in an unfinished quote were accepted, potentially with bad memory accesses. Reject anything which ends in a unfished quote, or contains non-whitespace characters right after the closing quote. _FOREACH_WORD now returns the invalid character in *state. But this return value is not checked anywhere yet. Also, make 'word' and 'state' variables const pointers, and rename 'w' to 'word' in various places. Things are easier to read if the same name is used consistently. mbiebl_> am I correct that something like this doesn't work mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-passwd "Unlock EncFS"' mbiebl_> systemd seems to strip of the quotes mbiebl_> systemctl status shows mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-password Unlock EncFS $RootDir $MountPoint mbiebl_> which is pretty weird Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-07-19Be more careful when checking for empty filesZbigniew Jędrzejewski-Szmek
If we want to avoid reading a totally empty file, it seems better to check after we have opened the file, not before. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-07-06src/libudev/util.c: import flush_fd() from upstreamAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2014-06-06udev: always close lock file descriptorKay Sievers
https://bugs.freedesktop.org/show_bug.cgi?id=79576 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-02-21Add missing REENABLE_WARNING and unlink_noerrno()Anthony G. Basile
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-09Remove duplicate includesKarel Zak
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-09-10src/libudev/util.c: reintroduce cescape and octcharAnthony G. Basile
2013-08-16fix usage of glibc-specific sys/poll.hrofl0r
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>
2013-08-02util: make gcc shut up by passing a 0 mode param to open()Lennart Poettering
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.
2013-08-02src/libudev/{strv,util}.{h,c}: reorder functionsAnthony G. Basile
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>
2013-07-31add new hexchar() callLennart Poettering
Based on systemd commit fb624d04e56018defe297eff1d88888b192caeaa , added to support commit f8e6d758cd65b28f94b62344bd95e7bab94370d4 Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
2013-07-31add various escaping/path handling utility functionsLennart Poettering
A portion of systemd commit 4fe88d28a4cfa504c1f2362d4a7030fae4c4af29 , needed to support changes made by commit 6284c1ca41dca85e968e8d304cdc154c5a46d6d2 Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
2013-07-31Revert "static-nodes: remove creation of static nodes if HAVE_LIBKMOD"Ian Stakenvicius
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>
2013-07-31static-nodes: remove creation of static nodes if HAVE_LIBKMODAnthony G. Basile
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>
2013-07-10Bring mkdir.c, label.c and util.c in better line with upstreamAnthony G. Basile
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-06-06Round 4 of remove unused functions from src/libudev/{hashmap,log,set,util}.cAnthony G. Basile
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>
2013-06-06Round 3 of remove unused functions from src/libudev/{conf-files,hashmap,util}Anthony G. Basile
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>
2013-06-05Round 2 of remove unused functions from ↵Anthony G. Basile
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>
2013-06-05Remove unused functions from src/libudev/util.cAnthony G. Basile
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>
2013-06-04src/libudev/strv.{c,h}: bring in line with upstreamAnthony G. Basile
In doing so, we better alined util.{c,h} by movig the definitions of freep, fclosep, closep, closedirp, umaskp from util.c to util.h as static inline. We also add strv_env_get to env-util.{c,h} which we forgot to do earlier. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-06-04src/libudev/util.c: bring in line with upstreamAnthony G. Basile
To bring this in line with upstream, we had to add in env-util.c. The approach we will take is to slim down upstream's "shared" code so that it only contains functions and macros for what we need. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-01-23src/libudev/util.c: fix typo introduce at commit 1ebf647Anthony G. Basile
The first argument of fcntl should be 'fd', the file descriptor. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-01-21Fall back on POSIX mkstemp() for systems lacking mkostemp()Anthony G. Basile
We add an autotools check to use mkstemp() and fcntl() when mkostemp() is missing. This is not strictly equivalent because we have no way of setting the file access mode O_WRONLY flag, but that should produce no functional difference. Signed-off-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-01-20Switch to dup2 from dup3Richard Yao
dup3() was being used in a situation where dup2() would suffice. uclibc does not support dup3(), so we switch to dup2(). Signed-off-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2013-01-04Fix bugs in execv() calls to modprobeIan Stakenvicius
Change the execv() call to an execvp() call so that --with-modprobe="modprobe" is supported; also added the command as argv[0] in the call to execvp(), which fixes the failures when 'modprobe' is a symlink to kmod Signed off by ryao
2012-12-01Include config.h in src/libudev/Makefile.am to provide needed #define'sAnthony G. Basile
This commit provides needed #define's that provide structures that are found at configure time. It also reverts commit 91ce21b2d7978837b233e152ac63863a910eaf21 to avoid redefinitions of _GNU_SOURCE. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2012-12-01Fix glibc-isms with #define _GNU_SOURCEIan Stakenvicius
This is a combination of commits c9485bf12eafad22dbe316ccbf3a9506d4cace66 abd4a3a3bf5851f07cac6665f35c8b92279c4a47 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2012-12-01Moved files to libudev that once were in upstream libsystemd-sharedIan Stakenvicius