summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-06-24sd-netlink: don't export internal type-system detailsDavid Herrmann
The kernel bonding layer allows passing an array of ARP IP targets as bond-configuration. Due to the weird implementation of arrays in netlink (which we haven't figure out a generic way to support, yet), we usually hard-code the supported array-sizes. However, this should not be exported from sd-netlink. Instead, make sure the caller just uses it's current hack of enumerating the types, and the sd-netlink core will have it's own list of supported array-sizes (to be removed in future extensions, btw!). If either does not match, we will just return a normal error. Note that we provide 2 constants for ARP_IP_TARGETS_MAX now. However, both have very different reasons: - the constant in netdev-bond.c is used to warn the user that the given number of targets might not be supported by the kernel (even though the kernel might increase that number at _any_ time) - the constant in sd-netlink is solely used due to us missing a proper array implementation. Once that's supported in the type-system, it can be removed without notice Last but not least, this patch turns the log_error() into a log_warning(). Given that the previous condition was off-by-one, anyway, it never hit at the right time. Thus, it was probably of no real use.
2015-06-24sd-netlink: don't treat NULL as root type-systemDavid Herrmann
Explicitly export the root type-system to the type-system callers. This avoids treating NULL as root, which for one really looks backwards (NULL is usually a leaf, not root), and secondly prevents us from properly debugging calling into non-nested types. Also rename the root to "type_system_root". Once we support more than rtnl, well will have to revisit that, anyway.
2015-06-24sd-netlink: don't treat type_system->count==0 as invalidDavid Herrmann
Empty type-systems are just fine. Avoid the nasty hack in union-type-systems that treat empty type-systems as invalid. Instead check for the actual types-array and make sure it's non-NULL (which is even true for empty type-systems, due to "empty_types" array).
2015-06-24sd-netlink: make sure the root-level type is nestedDavid Herrmann
In sd-netlink-message, we always guarantee that the currently selected type-system is non-NULL. Otherwise, we would be unable to parse any types in the current container level. Hence, this assertion must be true: message->container_type_system[m->n_containers] != NULL During message_new() we currently do not verify that this assertion is true. Instead, we blindly access nl_type->type_system and use it (which might be NULL for basic types and unions). Fix this, by explicitly checking that the root-level type is nested. Note that this is *not* a strict requirement of netlink, but it's a strict requirement for all message types we currently support. Furthermore, all the callers of message_new() already verify that only supported types are passed, therefore, this is a pure cosmetic check. However, it might be needed on the future, so make sure we don't trap into this once we change the type-system.
2015-06-24sd-netlink: drop NETLINK_TYPE_METADavid Herrmann
The NETLINK_TYPE_META pseudo-type is actually equivalent to an empty nested type. Drop it and define an empty type-system instead. This also has the nice side-effect that m->container_type_system[0] is never NULL (which has really nasty side-effects if you try to read attributes).
2015-06-24sd-netlink: turn 'max' into 'count' to support empty type-systemsDavid Herrmann
Right now we store the maximum type-ID of a type-system. This prevents us from creating empty type-systems. Store the "count" instead, which should be treated as max+1. Note that type_system_union_protocol_get_type_system() currently has a nasty hack to treat empty type-systems as invalid. This might need some modification later on as well.
2015-06-24sd-netlink: avoid casting size_t into intDavid Herrmann
size_t is usually 64bit and int 32bit on a 64bit machine. This probably does not matter for netlink message sizes, but nevertheless, avoid hard-coding it anywhere.
2015-06-24sd-netlink: make NLTypeSystem internalDavid Herrmann
Same as NLType, move NLTypeSystem into netlink-types.c and hide it from the outside. Provide an accessor function for the 'max' field that is used to allocate suitable array sizes. Note that this will probably be removed later on, anyway. Once we support bigger type-systems, it just seems impractical to allocate such big arrays for each container entry. An RBTree would probably do just fine.
2015-06-24sd-netlink: make NLType internalDavid Herrmann
If we extend NLType to support arrays and further extended types, we really want to avoid hard-coding the type-layout outside of netlink-types.c. We already avoid accessing nl_type->type_system outside of netlink-types.c, extend this to also avoid accessing any other fields. Provide accessor functions for nl_type->type and nl_type->size and then move NLType away from the type-system header. With this in place, follow-up patches can safely turn "type_system" and "type_system_union" into a real "union { }", and then add another type for arrays.
2015-06-24sd-netlink: don't access type->type_system[_union] directlyDavid Herrmann
Make sure we never access type->type_system or type->type_system_union directly. This is an implementation detail of the type-system and we should always use the accessors. Right now, they only exist for 2-level accesses (type-system to type-system). This patch introduces the 1-level accessors (type to type-system) and makes use of it. This patch makes sure the proper assertions are in place, so we never accidentally access sub-type-systems for non-nested/union types. Note that this places hard-asserts on the accessors. This should be fine, as we expect callers to only access sub type-systems if they *know* they're dealing with nested types.
2015-06-24sd-netlink: rename NLA_ to NETLINK_TYPE_David Herrmann
The NLA_ names are used to name real datatypes we extract out of netlink messages. The kernel has an internal enum with the same names (NLA_foobar), which is *NOT* binary compatible to our types. Furthermore, we support a different set of types than the kernel (as we try to treat some kernel peculiarities as our own types to simplify the API). Rename NLA_ to NETLINK_TYPE_ to make clear that this is our own set of types.
2015-06-24Merge pull request #346 from poettering/install-bad-memoryDaniel Mack
install: fix minor bad memory access
2015-06-24Merge pull request #349 from ↵Kay Sievers
systemd-mailing-devs/1435103298-2439-1-git-send-email-jengelh@inai.de ata_id: unbotch format specifier
2015-06-24ata_id: unbotch format specifierJan Engelhardt
Commit v218-247-g11c6f69 broke the output of the utility. "%1$" PRIu64 "x" expands to "%1$lux", essentially "%lux", which shows the problem. u and x cannot be combined, u wins as the type character, and x gets emitted verbatim to stdout. References: https://bugzilla.redhat.com/show_bug.cgi?id=1227503
2015-06-23install: fix bad memory accessLennart Poettering
2015-06-24Merge pull request #339 from teg/udev-coverityDaniel Mack
coverity fixes in udev
2015-06-23Merge pull request #338 from xnox/fix-copy-bytesKay Sievers
test: fix test-copy without /etc/os-release.
2015-06-23test: fix test-copy without /etc/os-release.Dimitri John Ledkov
2015-06-23udevadm: trigger - check return valuesTom Gundersen
Fixes CID#1296243.
2015-06-23udev: worker - check return value of udev_monitor_enable_receiving()Tom Gundersen
Fixes CID#1297430.
2015-06-23udev: event - check return code of dup2()Tom Gundersen
This fixes CID#1304688.
2015-06-23udev: bulitin-hwdb - fix memory leakTom Gundersen
This fixes CID#1292782.
2015-06-23Merge pull request #332 from xnox/bootchart-scalesDaniel Mack
bootchart: fix per-cpu & small scales.
2015-06-23bootchart: fix per-cpu scales.Dimitri John Ledkov
Closes systemd/systemd#330
2015-06-23README: mention "git archive"Kay Sievers
2015-06-23Merge pull request #318 from walyong/smack_v02Daniel Mack
SMACK v02: support modify rules and add default executed process label
2015-06-23Merge pull request #328 from kaysievers/nodistDaniel Mack
build-sys: add all source files and no built files to the tar ball
2015-06-23build-sys: add all source files and no built files to the tar ballKay Sievers
This fully synchronizes the content of a "make dist" and a "git archive" tar ball. http://lists.freedesktop.org/archives/systemd-devel/2015-June/033214.html
2015-06-23man: install networkctl and sysusers.d man page conditionallyMichael Biebl
2015-06-23Merge pull request #324 from llua/zsh-completionDaniel Mack
zsh-completion: _loginctl/_systemd/_systemd-inhibit improvements
2015-06-23Merge pull request #326 from whot/hwdb-updatesDaniel Mack
Hwdb updates
2015-06-23hwdb: move a couple of entries to expected sort orderPeter Hutterer
2015-06-23hwdb: add Logitech MX RevolutionPeter Hutterer
2015-06-23build-sys: let "make git-tar" archive HEADKay Sievers
2015-06-22zsh-completion: _loginctl/_systemd/_systemd-inhibit improvementsEric Cook
_loginctl: respects the verbose style. which allows a user to get the pre d5df0d950f8bc behavior of not showing a description for sessions and users, by default they aren't shown. zstyle ':completion:*' verbose true or zstyle ':completion:*:loginctl*:*' verbose true # or similar Will show the descriptions. zstyle ':completion:*' verbose true and zstyle ':completion:*:loginctl*:*' verbose false # or similar Won't show descriptions for loginctl only _systemd: complete pids for systemd-notify's --pid option. display a message of the expected argument for other options. _systemd-inhibit: complete block & delay for --mode display a message of the expected argument for --who/--why
2015-06-22build-sys: remove $(NULL)Kay Sievers
2015-06-22build-sys: add custom "make git-tar" targetKay Sievers
2015-06-22Merge pull request #314 from geertj/missing-exportsLennart Poettering
export sd_bus_object_added() / _removed()
2015-06-22Merge pull request #319 from teg/udev-cgroup-warningLennart Poettering
udevd: suppress warning if we don't find cgroup
2015-06-22Merge pull request #322 from kaysievers/wipKay Sievers
man: remove outdated links and stray character
2015-06-22man: remove stray · from headerKay Sievers
2015-06-22man: remove links to outdated kdbus development repositoryKay Sievers
2015-06-22udevd: suppress warning if we don't find cgroupTom Gundersen
This is expected on non-systemd systems, so just log it at debug level. This fixes issue #309.
2015-06-22smack: add default smack process label configWaLyong Cho
Similar to SmackProcessLabel=, if this configuration is set, systemd executes processes with given SMACK label. If unit has SmackProcessLabel=, this config is overwritten. But, do NOT be confused with SMACK64EXEC of execute file. This default execute process label(and also label which is set by SmackProcessLabel=) is set fork-ed process SMACK subject label and used to access the execute file. If the execution file has also SMACK64EXEC, finally executed process has SMACK64EXEC subject. While if the execution file has no SMACK64EXEC, the executed process has label of this config(or label which is set by SmackProcessLabel=). Because if execution file has no SMACK64EXEC then excuted process inherits label from caller process(in this case, the caller is systemd).
2015-06-22smack: support smack access change-ruleWaLyong Cho
Smack is also able to have modification rules of existing rules. In this case, the rule has additional argument to modify previous rule. /sys/fs/smackfs/load2 node can only take three arguments: subject object access. So if modification rules are written to /sys/fs/smackfs/load2, EINVAL error is happen. Those modification rules have to be written to /sys/fs/smackfs/change-rule. To distinguish access with operation of cipso2, split write_rules() for each operation. And, in write access rules, parse the rule and if the rule has four argument then write into /sys/fs/smackfs/change-rule. https://lwn.net/Articles/532340/ fwrite() or fputs() are fancy functions to write byte stream such like regular file. But special files on linux such like proc, sysfs are not stream of bytes. Those special files on linux have to be written with specific size. By this reason, in some of many case, fputs() was failed to write buffer to smack load2 node. The write operation for the smack nodes should be performed with write().
2015-06-22Merge pull request #315 from llua/zsh-completionDaniel Mack
zsh-completion: _systemd-nspawn - add more argument completion
2015-06-21export sd_bus_object_added() / _removed()Geert Jansen
Fixes #306.
2015-06-21zsh-completion: _systemd-nspawn - add more argument completionEric Cook
filenames will be completed for --image/-i/--bind/--bind-ro/--tmpfs network interfaces for --network-(interface|macvlan|ipvlan|bridge) users for --user/-u, yes & no for --register, x86 * x86-64 for --personality display a message of the expected argument for --machine/-M/--uuid --slice/-S/--port/-p/--selinux-*/-Z/-L/--setenv Allow completing commands(and their options) of the host system for COMMAND
2015-06-21Merge pull request #304 from mknjc/masterDaniel Mack
fix machinectl bind man entry
2015-06-21pam_systemd: Properly check kdbus availabilityJan Alexander Steffens (heftig)
This properly avoids setting DBUS_SESSION_BUS_ADDRESS if kdbus is loaded (or built into the kernel) but not wanted.