summaryrefslogtreecommitdiffstats
path: root/src/basic/macro.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* coredump filter: fix stack overflow with =allLuca Boccassi2023-04-261-0/+4
| | | | | | | | | | | | | We translate 'all' to UNIT64_MAX, which has a lot more 'f's. Use the helper macro, since a decimal uint64_t will always be >> than a hex representation. root@image:~# systemd-run -t --property CoredumpFilter=all ls /tmp Running as unit: run-u13.service Press ^] three times within 1s to disconnect TTY. *** stack smashing detected ***: terminated [137256.320511] systemd[1]: run-u13.service: Main process exited, code=dumped, status=6/ABRT [137256.320850] systemd[1]: run-u13.service: Failed with result 'core-dump'.
* tree-wide: code spelling fixesFrantisek Sumsal2023-04-201-1/+1
| | | | As reported by Fossies.
* basic/macro: add macro to iterate variadic argsDan Streetman2023-03-091-0/+9
|
* macro: support the case that the number of elements has const qualifierYu Watanabe2023-03-091-4/+6
| | | | | | Follow-up for 5716c27e1f52d2aba9dd02916c01d6271d9d0b16. Addresses https://github.com/systemd/systemd/pull/26303#issuecomment-1460712007.
* macro: introduce FOREACH_ARRAY() macroYu Watanabe2023-03-071-0/+7
| | | | | | The pattern that runs all array element is quite common. But, sometimes, the number of element may be in a signed integer, or the array may be NULL.
* Include <threads.h> if possible to get thread_local definitionCristian Rodríguez2023-03-061-14/+0
| | | | | | | | | | | | IN C23, thread_local is a reserved keyword and we shall therefore do nothing to redefine it. glibc has it defined for older standard version with the right conditions. v2 by Yu Watanabe: Move the definition to missing_threads.h like the way we define e.g. missing syscalls or missing definitions, and include it by the users. Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
* macro: add macro for determining size of struct with trailing unionLennart Poettering2023-02-171-0/+1
|
* treewide: fix a few typos in NEWS, docs and commentsDmitry V. Levin2023-02-151-1/+1
|
* tree-wide: Use __func__ in assertsJan Janssen2023-01-181-3/+3
| | | | | | clang puts the whole function signature in __PRETTY_FUNCTION__, which is a bit excessive for something that can already be figured out by using the line number.
* macro: check existence of cleanup function before call itYu Watanabe2022-12-221-2/+10
| | | | | | | The free function specified in the macro may be provided by a dynamically loaded library. Replaces #25781.
* Rename def.h to constants.hZbigniew Jędrzejewski-Szmek2022-11-081-24/+1
| | | | | | The name "def.h" originates from before the rule of "no needless abbreviations" was established. Let's rename the file to clarify that it contains a collection of various semi-related constants.
* json: use fpclassify() or its helper functionsYu Watanabe2022-07-211-4/+0
|
* Use https for gnu.orgMichael Biebl2022-06-281-1/+1
|
* macro: make ALIGN4() and ALIGN8() also return SIZE_MAX on overflowYu Watanabe2022-05-311-19/+0
| | | | This also drops unused ALIGN4_PTR(), ALIGN8_PTR(), and ALIGN_TO_PTR().
* macro: Move attribute defintions to macro-fundamentalJan Janssen2022-05-281-18/+0
| | | | This also sorts them.
* Add saturate_add() that generalizes size_add()Zbigniew Jędrzejewski-Szmek2022-05-121-1/+8
|
* macro: upgrade ref counting overflow check assert() → assert_se()Lennart Poettering2022-04-211-1/+1
| | | | | | | | | | The overflow check for ref counting should not be subject to NDEBUG, hence upgrade assert() → assert_se(). (The check for zero is an immediate bug in our code, and should be impossible to trigger, hence it's fine if the check is optimized away if people are crazy enough to set NDEBUG, so that can stay assert()) https://github.com/systemd/systemd/pull/23099#discussion_r854341850
* macro: check over flow in reference counterYu Watanabe2022-04-191-2/+6
|
* meson: explicitly include coverage tweaks when built w/ --coverageFrantisek Sumsal2022-04-081-13/+0
| | | | | | | | | To make sure we don't miss any _exit() calls let's move the coverage-related tweaks into a separate header file and include it explicitly on the compiler command line using -include when a coverage build is requested. Follow-up to c6552ad381003a23cde7c3228e7071f30465df35.
* macro: call __gcov_dump() before _exit() w/ coverage enabledFrantisek Sumsal2022-04-071-0/+13
| | | | | | | _exit() skips at-exit hooks, causing lost coverage from processes utilizing it. Hopefully resolves systemd/systemd-centos-ci#482
* macro: add macro that simplifies going backwards through an array via pointersLennart Poettering2022-03-231-0/+16
| | | | Inspired by #22797, let's avoid some UB when iterating through arrays.
* macro: handle DECIMAL_STR_MAX() special cases more accuratelyLennart Poettering2022-03-141-6/+5
| | | | | | | | | | | | | | | | | | So far DECIMAL_STR_MAX() overestimated the types in two ways: it would also adds space for a "-" for unsigned types. And it would always return the same size for 64bit values regardless of signedness, even though the longest maximum numbers for signed and unsigned differ in length by one digit. i.e. 2^64-1 (i.e. UINT64_MAX) is one decimal digit longer than -2^63 (INT64_MIN) - for the other integer widths the number of digits in the "longest" decimal value is always the same, regardless of signedness. by example: strlen("65535") == strlen("32768") (i.e. the relevant 16 bit limits) holds — and similar for 8bit and 32bit integer width limits — but strlen("18446744073709551615") > strlen("9223372036854775808") (i.e. the relevant 64 bit limits). Let's fix both misestimations.
* macro: DECIMAL_STR_WIDTH() is about *values* not *types*Lennart Poettering2022-03-141-3/+13
| | | | | | | Hence, check if the value is negative, not whether the type can carry negatives. Follow-up for: e3dd9ea8ea4510221f73071ad30ee657ca77565d
* macro: account for negative values in DECIMAL_STR_WIDTH()Frantisek Sumsal2022-03-131-7/+7
| | | | | | With negative numbers we wouldn't account for the minus sign, thus returning a string with one character too short, triggering buffer overflows in certain situations.
* sd-boot: Move flags helpers to macro-fundamental.hJan Janssen2021-11-041-7/+0
|
* macro: Move ALIGN_TO to macro-fundamental.h and introduce CONST_ALIGN_TOJan Janssen2021-10-171-18/+0
|
* macro: also use trailing __ for alignof use in attributesLennart Poettering2021-10-111-1/+1
| | | | | While the underscore is optional, the docs say we should suffix and we do that everywher else. Do so here too.
* macro: fix ALIGN_TO() to use ULLONG_MAX instead of ULONGLONG_MAXThomas Haller2021-10-111-1/+1
| | | | | | | <limits.h> calls this ULLONG_MAX. It's not clear to me where ULONGLONG_MAX can be found. This seems to be just a mistake. Fixes: c7ed7187203c ('macro: handle overflow in ALIGN_TO() somewhat reasonably')
* macro: handle overflow in ALIGN_TO() somewhat reasonablyLennart Poettering2021-08-201-0/+14
| | | | | | | | | | | The helper call rounds up to next multiple of specified boundary. If one passes a very large value as first argument, then there might not be a next multiple. So far we ignored that. Let's handle this now and return SIZE_MAX in this case, as special indicator that we reached the end. Of course, IRL this should not happen. With this new change we at least do something somewhat reasonable, leaving it to the caller to handle it further.
* sd-boot: Fix PE section parsingJan Janssen2021-08-161-1/+0
| | | | | | | We only need the PE header offset from the DOS header, not its size. Previously, the section table could be cut off in the middle. While we are at it, also modernize the remaining code.
* Merge pull request #20233 from maanyagoenka/log-errorLennart Poettering2021-08-131-0/+6
|\ | | | | systemd-analyze: add option to return an error value when unit verification fails
| * systemd-analyze: option to exit with an error when 'verify' failsMaanya Goenka2021-08-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit introduces a callback invoked from log_syntax_internal. Use it from systemd-analyze to gather a list of units that contain syntax warnings. A new command line option is added to make use of this. The new option --recursive-errors takes in three possible modes: 1. yes - which is the default. systemd-analyze exits with an error when syntax warnings arise during verification of the specified units or any of their dependencies. 3. no - systemd-analyze exits with an error when syntax warnings arise during verification of only the selected unit. Analyzing and loading any dependencies will be skipped. 4. one - systemd-analyze exits with an error when syntax warnings arise during verification of only the selected units and their direct dependencies. Below are two service unit files that I created for the purposes of testing: 1. First, we run the commands on a unit that does not have dependencies but has a non-existing key-value setting (i.e. foo = bar). > cat <<EOF>testcase.service [Unit] foo = bar [Service] ExecStart = echo hello EOF OUTPUT: maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify testcase.service /home/maanya-goenka/systemd/testcase.service:2: Unknown key name 'foo' in section 'Unit', ignoring. /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=yes testcase.service /home/maanya-goenka/systemd/testcase.service:2: Unknown key name 'foo' in section 'Unit', ignoring. /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=no testcase.service /home/maanya-goenka/systemd/testcase.service:2: Unknown key name 'foo' in section 'Unit', ignoring. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=one testcase.service /home/maanya-goenka/systemd/testcase.service:2: Unknown key name 'foo' in section 'Unit', ignoring. /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 2. Next, we run the commands on a unit that is syntactically valid but has a non-existing dependency (i.e. foo2.service) > cat <<EOF>foobar.service [Unit] Requires = foo2.service [Service] ExecStart = echo hello EOF OUTPUT: maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify foobar.service /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. foobar.service: Failed to create foobar.service/start: Unit foo2.service not found. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=yes foobar.service /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. foobar.service: Failed to create foobar.service/start: Unit foo2.service not found. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=no foobar.service maanya-goenka@debian:~/systemd (log-error)$ echo $? 0 maanya-goenka@debian:~/systemd (log-error)$ sudo build/systemd-analyze verify --recursive-errors=one foobar.service /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed. /usr/lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly. /usr/lib/systemd/system/gdm.service:30: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. foobar.service: Failed to create foobar.service/start: Unit foo2.service not found. maanya-goenka@debian:~/systemd (log-error)$ echo $? 1
* | macro: Move some macros to macro-fundamental.hJan Janssen2021-08-111-23/+0
|/ | | | Also, make sure STRLEN works with wide strings too.
* Drop the text argument from assert_not_reached()Zbigniew Jędrzejewski-Szmek2021-08-031-2/+2
| | | | | | | | | | | | | | | | | In general we almost never hit those asserts in production code, so users see them very rarely, if ever. But either way, we just need something that users can pass to the developers. We have quite a few of those asserts, and some have fairly nice messages, but many are like "WTF?" or "???" or "unexpected something". The error that is printed includes the file location, and function name. In almost all functions there's at most one assert, so the function name alone is enough to identify the failure for a developer. So we don't get much extra from the message, and we might just as well drop them. Dropping them makes our code a tiny bit smaller, and most importantly, improves development experience by making it easy to insert such an assert in the code without thinking how to phrase the argument.
* macro: change DECIMAL_STR_WIDTH() return type to size_t, like strlen() and so onLennart Poettering2021-07-301-1/+1
|
* macro: sizeof() returns size_t, and that's goodLennart Poettering2021-07-301-2/+2
| | | | | | | | | Now that CONST_MAX() is a bit more foregiving, let's stick to the native return type of sizeof() everywhere, which is size_t, instead of casting to "unsigned", so that on the common archs we don't unnecessarily lose the upper 32bits. This semi-reverts d3e40294572512810c9329933a488619e7ce22fd.
* basic/{time,format}-util: warn when format result is unusedZbigniew Jędrzejewski-Szmek2021-07-091-0/+1
| | | | | Now that anonymous buffers are used in almost all cases, code which does not use the return value is usually broken.
* basic/macro: make CONST_MAX(DECIMAL_STR_MAX(…), STRLEN(…)) possibleZbigniew Jędrzejewski-Szmek2021-07-091-5/+5
| | | | | | | | | | | | | | | | When those two macros were used together in CONST_MAX(), gcc would complain about a type mismatch. So either DECIMAL_STR_MAX() should be made size_t like STRLEN(), or STRLEN() be made unsigned. Since those macros are only usable on arguments of (small) fixed size, any type should be fine (even char would work…). For buffer size specifications, both size_t and unsigned are OK. But unsigned was used for DECIMAL_STR_MAX macros and FORMAT_foo_MAX macros, making STRLEN the only exception, so let's adjust STRLEN() to be unsigned too. Also: I don't think this is currently used anywhere, but if any of those macros were used as an argument to sprintf, size_t would require a cast. ("%*s" requires an int/unsigned argument.)
* boot: add optional EFI SBAT supportDimitri John Ledkov2021-05-071-6/+0
| | | | | | | | | | Add SBAT support, when -Dsbat-distro value is specified. One can use -Dsbat-distro=auto for autodetection of all sbat options. Many meson configure options added to customize SBAT CSV values, but sensible defaults are auto detected by default. SBAT support is required if shim v15+ is used to load systemd-boot binary or kernel.efi (Type II BootLoaderSpec). Fixes #19247
* shared/conf-parser: allow more than one location of the main config fileZbigniew Jędrzejewski-Szmek2021-02-211-0/+1
| | | | No functional change as long as only one path is passed.
* tree-wide: reset the cleaned-up variable in cleanup functionsZbigniew Jędrzejewski-Szmek2021-02-161-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the cleanup function returns the appropriate type, use that to reset the variable. For other functions (usually the foreign ones which return void), add an explicit value to reset to. This causes a bit of code churn, but I think it might be worth it. In a following patch static destructors will be called from a fuzzer, and this change allows them to be called multiple times. But I think such a change might help with detecting unitialized code reuse too. We hit various bugs like this, and things are more obvious when a pointer has been set to NULL. I was worried whether this change increases text size, but it doesn't seem to: -Dbuildtype=debug: before "tree-wide: return NULL from freeing functions": -rwxrwxr-x 1 zbyszek zbyszek 4117672 Feb 16 14:36 build/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 4494520 Feb 16 15:06 build/systemd* after "tree-wide: return NULL from freeing functions": -rwxrwxr-x 1 zbyszek zbyszek 4117672 Feb 16 14:36 build/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 4494576 Feb 16 15:10 build/systemd* now: -rwxrwxr-x 1 zbyszek zbyszek 4117672 Feb 16 14:36 build/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 4494640 Feb 16 15:15 build/systemd* -Dbuildtype=release: before "tree-wide: return NULL from freeing functions": -rwxrwxr-x 1 zbyszek zbyszek 5252256 Feb 14 14:47 build-rawhide/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 1834184 Feb 16 15:09 build-rawhide/systemd* after "tree-wide: return NULL from freeing functions": -rwxrwxr-x 1 zbyszek zbyszek 5252256 Feb 14 14:47 build-rawhide/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 1834184 Feb 16 15:10 build-rawhide/systemd* now: -rwxrwxr-x 1 zbyszek zbyszek 5252256 Feb 14 14:47 build-rawhide/libsystemd.so.0.30.0* -rwxrwxr-x 1 zbyszek zbyszek 1834184 Feb 16 15:16 build-rawhide/systemd* I would expect that the compiler would be able to elide the setting of a variable if the variable is never used again. And this seems to be the case: in optimized builds there is no change in size whatsoever. And the change in size in unoptimized build is negligible. Something strange is happening with size of libsystemd: it's bigger in optimized builds. Something to figure out, but unrelated to this patch.
* fundamental: move several macros and functions into src/fundamental/Yu Watanabe2021-02-091-179/+2
| | | | | | | | | | sd-boot has a copy of a subset of codes from libbasic. This makes sd-boot share the code with libbasic, and dedup the code. Note, startswith_no_case() is dropped from sd-boot, as - it is not used, - the previous implementation is not correct, - gnu-efi does not have StrniCmp() or so.
* license: LGPL-2.1+ -> LGPL-2.1-or-laterYu Watanabe2020-11-091-1/+1
|
* Merge pull request #17324 from keszybz/resolvectl-compat-outputLennart Poettering2020-10-221-0/+4
|\ | | | | resolvectl compat output
| * format-table: add TABLE_STRV_WRAPPEDZbigniew Jędrzejewski-Szmek2020-10-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea is that we have strvs like list of server names or addresses, where the majority of strings is rather short, but some are long and there can potentially be many strings. So formattting them either all on one line or all in separate lines leads to output that is either hard to read or uses way too many rows. We want to wrap them, but relying on the pager to do the wrapping is not nice. Normal text has a lot of redundancy, so when the pager wraps a line in the middle of a word the read can understand what is going on without any trouble. But for a high-density zero-redundancy text like an IP address it is much nicer to wrap between words. This also makes c&p easier. This adds a variant of TABLE_STRV which is wrapped on output (with line breaks inserted between different strv entries). The change table_print() is quite ugly. A second pass is added to re-calculate column widths. Since column size is now "soft", i.e. it can adjust based on available columns, we need to two passes: - first we figure out how much space we want - in the second pass we figure out what the actual wrapped columns widths will be. To avoid unnessary work, the second pass is only done when we actually have wrappable fields. A test is added in test-format-table.
| * resolvectl: break nta/domain/dns listings with newlinesZbigniew Jędrzejewski-Szmek2020-10-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We would print the whole string as a single super-long line. Let's nicely break the text into lines that fit on the screen. $ COLUMNS=70 build/resolvectl --no-pager nta Global: home local intranet 23.172.in-addr.arpa lan 18.172.in-addr.arpa 16.172.in-addr.arpa 19.172.in-addr.arpa 25.172.in-addr.arpa 21.172.in-addr.arpa d.f.ip6.arpa 20.172.in-addr.arpa 30.172.in-addr.arpa 17.172.in-addr.arpa internal 168.192.in-addr.arpa 28.172.in-addr.arpa 22.172.in-addr.arpa 24.172.in-addr.arpa 26.172.in-addr.arpa corp 10.in-addr.arpa private 29.172.in-addr.arpa test 27.172.in-addr.arpa 31.172.in-addr.arpa Link 2 (hub0): Link 4 (enp0s31f6): Link 5 (wlp4s0): Link 7 (virbr0): adsfasdfasdfasd.com 21.172.in-addr.arpa lan j b a.com home d.f.ip6.arpa b.com local 16.172.in-addr.arpa 19.172.in-addr.arpa 18.172.in-addr.arpa 25.172.in-addr.arpa 20.172.in-addr.arpa k i h 23.172.in-addr.arpa 168.192.in-addr.arpa d g intranet 17.172.in-addr.arpa c e.com 30.172.in-addr.arpa a f d.com e internal Link 8 (virbr0-nic): Link 9 (vnet0): Link 10 (vb-rawhide): Link 15 (wwp0s20f0u2i12):
* | macro: introduce POINTER_MAX as define for (void*) -1Lennart Poettering2020-10-221-4/+7
| | | | | | | | | | Just add a safer, prettier way to write (void*) -1, that doesn't rely on two's complement, but uses the correct underlying C constructs.
* | cgtop: Display cpu time in microseonds with --rawArian van Putten2020-10-211-0/+6
| | | | | | | | | | | | | | this makes the CPU time easily parseable; which was the goal of --raw in the first place. This only triggers if --raw is combined with --cpu=time
* | sd-dhcp-client: make sd_dhcp_client_set_request_option() not return -EEXISTYu Watanabe2020-10-141-0/+3
| | | | | | | | Fixes #16964.
* | basic/selinux: work around mallinfo deprecationZbigniew Jędrzejewski-Szmek2020-10-121-0/+4
|/ | | | | | | Latest glibc has deprecated mallinfo(), so it might become unavailable at some point in the future. There is malloc_info(), but it returns XML, ffs. I think the information that we get from mallinfo() is quite useful, so let's use mallinfo() if available, and not otherwise.