platform/upstream/systemd.git
4 years agoRevert "units: remove unused busnames.target"
Adrian Szyndela [Thu, 5 Mar 2020 08:28:16 +0000 (09:28 +0100)]
Revert "units: remove unused busnames.target"

This reverts commit 0ba89873372c3ab508852b4e0071da0719bcea0a.

4 years agoMerge v240 into tizen
Adrian Szyndela [Thu, 26 Mar 2020 15:35:12 +0000 (16:35 +0100)]
Merge v240 into tizen

systemd 240

4 years ago(backport) core: remove JoinControllers= configuration setting sandbox/adrians/upgrade-to-239
Lennart Poettering [Thu, 15 Nov 2018 20:07:43 +0000 (21:07 +0100)]
(backport) core: remove JoinControllers= configuration setting

This removes the ability to configure which cgroup controllers to mount
together. Instead, we'll now hardcode that "cpu" and "cpuacct" are
mounted together as well as "net_cls" and "net_prio".

The concept of mounting controllers together has no future as it does
not exist to cgroupsv2. Moreover, the current logic is systematically
broken, as revealed by the discussions in #10507. Also, we surveyed Red
Hat customers and couldn't find a single user of the concept (which
isn't particularly surprising, as it is broken...)

This reduced the (already way too complex) cgroup handling for us, since
we now know whenever we make a change to a cgroup for one controller to
which other controllers it applies.

Change-Id: I0eadd5f685980bd006134991310c0688ba7a86c5

4 years ago(backport) fs-util: make symlink_idempotent() optionally create relative link
Yu Watanabe [Sun, 23 Sep 2018 07:17:03 +0000 (16:17 +0900)]
(backport) fs-util: make symlink_idempotent() optionally create relative link

Change-Id: I24d38ca9a7e0f63095cd8fdf33b9686206ebf6a5

4 years ago(backport) nspawn: Move cgroup mount stuff from nspawn-mount.c to nspawn-cgroup.c
Luke Shumaker [Fri, 7 Jul 2017 22:57:08 +0000 (18:57 -0400)]
(backport) nspawn: Move cgroup mount stuff from nspawn-mount.c to nspawn-cgroup.c

Change-Id: Iaf44ed696c287b1cc0aa7a8c79773095a3c1ecc6

4 years ago(backport) nspawn: Simplify tmpfs_patch_options() usage, and trickle that up
Luke Shumaker [Tue, 13 Jun 2017 22:06:09 +0000 (18:06 -0400)]
(backport) nspawn: Simplify tmpfs_patch_options() usage, and trickle that up

One of the things that tmpfs_patch_options does is take an (optional) UID,
and insert "uid=${UID},gid=${UID}" into the options string.  So we need a
uid_t argument, and a way of telling if we should use it.  Fortunately,
that is built in to the uid_t type by having UID_INVALID as a possible
value.

So this is really a feature that requires one argument.  Yet, it is somehow
taking 4!  That is absurd.  Simplify it to only take one argument, and have
that trickle all the way up to mount_all()'s usage.

Now, in may of the uses, the argument becomes

    uid_shift == 0 ? UID_INVALID : uid_shift

because it used to treat uid_shift=0 as invalid unless the patch_ids flag
was also set.  This keeps the behavior the same.  Note that in all cases
where it is invoked, if !use_userns (sometimes called !userns), then
uid_shift is 0; we don't have to add any checks for that.

That said, I'm pretty sure that "uid=0" and not setting "uid=" are the
same, but Christian Brauner seemed to not think so when implementing the
cgns support.  https://github.com/systemd/systemd/pull/3589

Change-Id: I1b44d4415c10611b89423145f90b83e0d72eb4bc

4 years agoMerge v239 into tizen
Adrian Szyndela [Thu, 26 Mar 2020 15:27:17 +0000 (16:27 +0100)]
Merge v239 into tizen

systemd 239

4 years agosd-bus: fix fcntl flag for duplicating fd sandbox/adrians/upgrade-to-238
Adrian Szyndela [Thu, 26 Mar 2020 10:19:37 +0000 (11:19 +0100)]
sd-bus: fix fcntl flag for duplicating fd

4 years ago(backport) meson: unify linux/stat.h check with other checks and use _GNU_SOURCE
Zbigniew Jędrzejewski-Szmek [Wed, 18 Jul 2018 15:26:17 +0000 (17:26 +0200)]
(backport) meson: unify linux/stat.h check with other checks and use _GNU_SOURCE

Using _GNU_SOURCE is better because that's how we include the headers in the
actual build, and some headers define different stuff when it is defined.
sys/stat.h for example defines 'struct statx' conditionally.

Change-Id: I7cb80dc4339aa05d1a5dbebf483168c7dcce84d9

4 years ago(backport) build-sys: Detect whether struct statx is defined in sys/stat.h
Filipe Brandenburger [Mon, 16 Jul 2018 05:43:35 +0000 (22:43 -0700)]
(backport) build-sys: Detect whether struct statx is defined in sys/stat.h

Starting with glibc 2.27.9000-36.fc29, include file sys/stat.h will have a
definition for struct statx, in which case include file linux/stat.h should be
avoided, in order to prevent a duplicate definition.

    In file included from ../src/basic/missing.h:18,
     from ../src/basic/util.h:28,
     from ../src/basic/hashmap.h:10,
     from ../src/shared/bus-util.h:12,
     from ../src/libsystemd/sd-bus/bus-creds.c:11:
    /usr/include/linux/stat.h:99:8: error: redefinition of ‘struct statx’
     struct statx {
    ^~~~~
    In file included from /usr/include/sys/stat.h:446,
     from ../src/basic/util.h:19,
     from ../src/basic/hashmap.h:10,
     from ../src/shared/bus-util.h:12,
     from ../src/libsystemd/sd-bus/bus-creds.c:11:
    /usr/include/bits/statx.h:36:8: note: originally defined here
     struct statx
    ^~~~~

Extend our meson.build to look for struct statx when only sys/stat.h is
included and, in that case, do not include linux/stat.h anymore.

Tested that systemd builds correctly when using a glibc version that includes a
definition for struct statx.

glibc Fedora RPM update:
https://src.fedoraproject.org/rpms/glibc/c/28cb5d31fc1e5887912283c889689c47076278ae

glibc upstream commit:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fd70af45528d59a00eb3190ef6706cb299488fcd

Change-Id: I830760b930f8ebe51198b0e9bdb00d7049b395a8

4 years agoMerge v238 into tizen
Adrian Szyndela [Thu, 26 Mar 2020 15:03:37 +0000 (16:03 +0100)]
Merge v238 into tizen

systemd 238

4 years agosd-bus: kdbus: fix callbacks for matches sandbox/adrians/upgrade-to-237
Adrian Szyndela [Mon, 23 Mar 2020 15:39:04 +0000 (16:39 +0100)]
sd-bus: kdbus: fix callbacks for matches

Add callbacks for matches to reply_callbacks to perform
them after processing synchronous response to asynchronous
calls to AddMatch.

4 years agosd-bus: kdbus: decouple creating message from enqueuing
Adrian Szyndela [Mon, 23 Mar 2020 15:18:03 +0000 (16:18 +0100)]
sd-bus: kdbus: decouple creating message from enqueuing

This separates creating replies from enqueuing them. This way we can use
enqueueing function for other replies.

No functional changes.

4 years agosd-bus: kdbus: fixed return value in generated reply
Adrian Szyndela [Mon, 23 Mar 2020 15:17:08 +0000 (16:17 +0100)]
sd-bus: kdbus: fixed return value in generated reply

4 years agosd-bus: ensure freeing memory on errors
Adrian Szyndela [Fri, 6 Mar 2020 11:56:35 +0000 (12:56 +0100)]
sd-bus: ensure freeing memory on errors

Change-Id: I471ab19aca7fb06cbaf8e0abd1d0d405c601b3ca

4 years agokdbus: fix cookie and timeout in async name calls
Adrian Szyndela [Wed, 4 Mar 2020 08:15:47 +0000 (09:15 +0100)]
kdbus: fix cookie and timeout in async name calls

Change-Id: I75d74169dd3d9bbf357d4c0e75690f88e96d2291

4 years agokdbus: make async name calls prettier
Adrian Szyndela [Wed, 26 Feb 2020 14:50:12 +0000 (15:50 +0100)]
kdbus: make async name calls prettier

This extracts common code for bus_request_name_kernel_async()
and bus_release_name_kernel_async() into two separate
static functions to avoid code duplication.

No functional changes intended.

Change-Id: Ideeeb303b98faeb807544fa82124ea92cc2d2f34

4 years agokdbus: make sure all used data structures are initialized
Maciej Slodczyk [Tue, 25 Feb 2020 17:50:15 +0000 (18:50 +0100)]
kdbus: make sure all used data structures are initialized

Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
4 years agoAdd reply_callback slots to async kdbus name request/release
Maciej Slodczyk [Tue, 25 Feb 2020 13:49:14 +0000 (14:49 +0100)]
Add reply_callback slots to async kdbus name request/release

Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
4 years agokdbus: make async calls generate synthetic replies
Adrian Szyndela [Mon, 24 Feb 2020 13:33:48 +0000 (14:33 +0100)]
kdbus: make async calls generate synthetic replies

Change-Id: Ibd88ca9d6900aca77b0d02021f5ebbbe00718865

4 years agoHandle return slot with kdbus async calls
Maciej Slodczyk [Fri, 21 Feb 2020 17:02:26 +0000 (18:02 +0100)]
Handle return slot with kdbus async calls

Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
4 years agobus: optionally call a callbacks for cleanup
Zbigniew Jędrzejewski-Szmek [Wed, 6 Jun 2018 09:07:02 +0000 (11:07 +0200)]
bus: optionally call a callbacks for cleanup

This adds a function sd_bus_slot_set_destroy_callback() to set a function
which can free userdata or perform other cleanups.

sd_bus_slot_get_destory_callback() queries the callback, and is included
for completeness.

Without something like this, for floating asynchronous callbacks, which might
be called or not, depending on the sequence of events, it's hard to perform
resource cleanup. The alternative would be to always perform the cleanup from
the caller too, but that requires more coordination and keeping of some shared
state. It's nicer to keep the cleanup contained between the callback and the
function that requests the callback.

4 years agoAdd async bindings to kdbus
Maciej Slodczyk [Fri, 21 Feb 2020 10:07:34 +0000 (11:07 +0100)]
Add async bindings to kdbus

Signed-off-by: Maciej Slodczyk <m.slodczyk2@partner.samsung.com>
4 years agoRevert "sd-bus: get rid of kdbus flags cruft"
Adrian Szyndela [Thu, 20 Feb 2020 09:55:01 +0000 (10:55 +0100)]
Revert "sd-bus: get rid of kdbus flags cruft"

This reverts commit c7db1984d0ec106436fda4e51194e259b90516e7.

Change-Id: Id456beb4b577ff5a11fa323894ae63f1cb110a3e

4 years agoRevert "sd-bus: drop unused parameters from bus_add_match_internal()"
Adrian Szyndela [Thu, 20 Feb 2020 09:14:00 +0000 (10:14 +0100)]
Revert "sd-bus: drop unused parameters from bus_add_match_internal()"

This reverts commit 0259b87f5e5d830c05e97cc285c49a33f01cb9f2.

Change-Id: Ib1c602f12754d5b5a71e1f69bca596514df9512d

4 years agoRevert "sd-bus: drop some unused fields from the sd_bus_message structure"
Adrian Szyndela [Thu, 20 Feb 2020 09:05:06 +0000 (10:05 +0100)]
Revert "sd-bus: drop some unused fields from the sd_bus_message structure"

This reverts commit 0f08647120031d674075eeba391d2463870f3a6b.

4 years agoRevert "sd-bus: remove 'hint_sync_call' parameter from various function calls"
Adrian Szyndela [Thu, 20 Feb 2020 08:29:53 +0000 (09:29 +0100)]
Revert "sd-bus: remove 'hint_sync_call' parameter from various function calls"

This reverts commit 66baf8c6444fa036e4da4a15d7099c21480bfefb.

Change-Id: Ibbad12a0dc9f36023440fe31ada757b0755b45a1

4 years agoRevert "sd-bus: drop bloom stuff, it's not needed anymore since kdbus is gone"
Adrian Szyndela [Thu, 20 Feb 2020 08:16:13 +0000 (09:16 +0100)]
Revert "sd-bus: drop bloom stuff, it's not needed anymore since kdbus is gone"

This reverts commit 1a86b085138234c9166614adc5ad399a19dae84b.

Change-Id: I14360ef56ba8852487f3cf005d7b0344a493f262

4 years agoMerge v237 into tizen
Adrian Szyndela [Wed, 26 Feb 2020 13:44:20 +0000 (14:44 +0100)]
Merge v237 into tizen

systemd 237

4 years agoMerge v236 into tizen sandbox/adrians/upgrade-to-236
Adrian Szyndela [Mon, 17 Feb 2020 13:12:39 +0000 (14:12 +0100)]
Merge v236 into tizen

Change-Id: Id62f08b8ecf2a909a49e5f93b2f7594b3880ef44

4 years agoRevert "nspawn: do not mount /sys/fs/kdbus" sandbox/adrians/upgrade-to-235
Adrian Szyndela [Wed, 12 Feb 2020 11:08:23 +0000 (12:08 +0100)]
Revert "nspawn: do not mount /sys/fs/kdbus"

This reverts commit b1679459352885c82b041b0fb376f652cec76994.

There are still people somewhere who need kdbus.

4 years agoRevert "exit-status: drop EXIT_MAKE_STARTER"
Adrian Szyndela [Mon, 10 Feb 2020 16:06:57 +0000 (17:06 +0100)]
Revert "exit-status: drop EXIT_MAKE_STARTER"

This reverts commit be7e509e89dff09a569fb035b4e03a5084038922.

There are still people somewhere who need kdbus.

4 years agoRevert "sd-bus: drop bloom fields"
Adrian Szyndela [Mon, 10 Feb 2020 16:04:14 +0000 (17:04 +0100)]
Revert "sd-bus: drop bloom fields"

This reverts commit 21a13ab0543e593637cf2a301076666c7ff82a18.

There are people somewhere that need kdbus.

4 years agoRevert "sd-bus: drop match cookie concept"
Adrian Szyndela [Mon, 10 Feb 2020 16:00:05 +0000 (17:00 +0100)]
Revert "sd-bus: drop match cookie concept"

This reverts commit 532f808fd15ec2cd91777ab3ad9afce2670ebac5.

There are people somewhere that need kdbus.

Change-Id: I33e47f0b81edb2ec834675fd3183a485d25920b7

4 years agoRevert "Drop busname unit type"
Adrian Szyndela [Mon, 10 Feb 2020 15:40:29 +0000 (16:40 +0100)]
Revert "Drop busname unit type"

This reverts commit 4bc5d27b942afa83cc3d95debd2ad48d42ac07a8.

There are people somewhere that need kdbus.

Change-Id: Ib2d05f88171718c07e7de06409a1c224230e7a8d

4 years agoRevert "Drop bus-policy bits"
Adrian Szyndela [Mon, 10 Feb 2020 15:38:07 +0000 (16:38 +0100)]
Revert "Drop bus-policy bits"

This reverts commit a6c97fc460e1e6bfd491262530057f876f6b20d1.

There are people somewhere that need kdbus.

Change-Id: I92a54bc8695a39cd39513e606d3685d085e09b16

4 years agoRevert "Drop kdbus bits"
Adrian Szyndela [Mon, 10 Feb 2020 15:29:58 +0000 (16:29 +0100)]
Revert "Drop kdbus bits"

This reverts commit a132bef0239e6c3f04096eee3a00c7ecf24a4f5c.

There are people somewhere that need kdbus.

Change-Id: I5a1f09485c524d47ef8ae53712d5fb77949bc7fa

4 years agoMerge v235 into tizen
Adrian Szyndela [Mon, 17 Feb 2020 12:23:57 +0000 (13:23 +0100)]
Merge v235 into tizen

Change-Id: Iafcca23df73f2694eda50a97771acac4b7996f30

4 years ago(backport) strv: rework FOREACH_STRING() macro sandbox/adrians/upgrade-to-234
Lennart Poettering [Tue, 15 Jan 2019 23:13:38 +0000 (00:13 +0100)]
(backport) strv: rework FOREACH_STRING() macro

So it's apparently problematic that we use STRV_MAKE() (i.e. a compound
initializer) outside of the {} block we use it in (and that includes
outside of the ({}) block, too). Hence, let's rework the macro to not
need that.

This also makes the macro shorter, which is definitely a good and more
readable. Moreover, it will now complain if the iterator is a "char*"
instead of a "const char*", which is good too.

Fixes: #11394
Change-Id: Ibc21cdd5583c3b6a079b8691bbac5e076819432a

4 years agoRevert "build-sys: drop last reference to --have-kdbus"
Adrian Szyndela [Thu, 6 Feb 2020 10:34:25 +0000 (11:34 +0100)]
Revert "build-sys: drop last reference to --have-kdbus"

This reverts commit 2acaa3789a417290154ca9e18354e7a930b37dfb.

4 years agoRevert "man: drop kdbus descriptions from sd_b_negotiate_fds(3)"
Adrian Szyndela [Thu, 6 Feb 2020 10:34:11 +0000 (11:34 +0100)]
Revert "man: drop kdbus descriptions from sd_b_negotiate_fds(3)"

This reverts commit ba612f4204230a9a63e18c42e20b47ed09da675e.

4 years ago(backport) sysctl: Don't pass null directive argument to '%s'
Khem Raj [Mon, 17 Dec 2018 04:53:38 +0000 (20:53 -0800)]
(backport) sysctl: Don't pass null directive argument to '%s'

value pointer here is always NULL but  subsequent use of that pointer
with a %s format will always be NULL, printing p instead would be a
valid string

Change-Id: Ib74f46d69eaf5e3d149523d53beef1f060a5fc16
Signed-off-by: Khem Raj <raj.khem@gmail.com>
4 years ago(backport) Fix format-truncation compile failure by typecasting USB IDs (#8250)
Patrick Uiterwijk [Thu, 22 Feb 2018 18:41:30 +0000 (19:41 +0100)]
(backport) Fix format-truncation compile failure by typecasting USB IDs (#8250)

This patch adds safe_atoux16 for parsing an unsigned hexadecimal 16bit int, and
uses that for parsing USB device and vendor IDs.

This fixes a compile error with gcc-8 because while we know that USB IDs are 2 bytes,
the compiler does not know that.

../src/udev/udev-builtin-hwdb.c:80:38: error: '%04X' directive output may be
truncated writing between 4 and 8 bytes into a region of size between 2 and 6
[-Werror=format-truncation=]

Change-Id: I40b2eb8b424c57ba430b217ebead2fc5d67bbb14
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
4 years ago(backport) udev/net-id: check all snprintf return values
Zbigniew Jędrzejewski-Szmek [Fri, 23 Feb 2018 10:12:19 +0000 (11:12 +0100)]
(backport) udev/net-id: check all snprintf return values

gcc-8 throws an error if it knows snprintf might truncate output and the
return value is ignored:
../src/udev/udev-builtin-net_id.c: In function 'dev_pci_slot':
../src/udev/udev-builtin-net_id.c:297:47: error: '%s' directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
                 snprintf(str, sizeof str, "%s/%s/address", slots, dent->d_name);
                                               ^~
../src/udev/udev-builtin-net_id.c:297:17: note: 'snprintf' output between 10 and 4360 bytes into a destination of size 4096
                 snprintf(str, sizeof str, "%s/%s/address", slots, dent->d_name);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

Let's check all return values. This actually makes the code better, because there's
no point in trying to open a file when the name has been truncated, etc.

Change-Id: I52c289a5e4d660c999383ee628c596e00c30af21

4 years ago(backport) core: Fix use after free case in load_from_path()
Khem Raj [Mon, 17 Dec 2018 04:58:35 +0000 (20:58 -0800)]
(backport) core: Fix use after free case in load_from_path()

ensure that mfree() on filename is called after the logging function
which uses the string pointed by filename

Change-Id: I126ff9068ff62ab658cafb80f0c8c12398e321ba
Signed-off-by: Khem Raj <raj.khem@gmail.com>
4 years ago(backport) sd-radv: avoid redefinition of struct in6_addr
Hans-Christian Noren Egtvedt [Mon, 25 Sep 2017 14:39:32 +0000 (16:39 +0200)]
(backport) sd-radv: avoid redefinition of struct in6_addr

Both netinet/icmp6.h and linux/in6.h will define struct in6_addr, and in
user space we want to use the netinet/icmp6.h variant.

Fixes build problem:
In file included from src/libsystemd-network/sd-radv.c:23:0:
/home/hegtvedt/work/os/product/sunrise/root/_build/v2/include/linux/in6.h:30:8:
error: redefinition of 'struct in6_addr'

Change-Id: I5e36d3a8a2f73681241436ab02fec4440a6a1902

4 years ago(backport) meson: rename -Ddebug to -Ddebug-extra
Zbigniew Jędrzejewski-Szmek [Sun, 19 Aug 2018 17:11:30 +0000 (19:11 +0200)]
(backport) meson: rename -Ddebug to -Ddebug-extra

Meson added -Doptimization and -Ddebug options, which obviously causes
a conflict with our -Ddebug options. Let's rename it.

Fixes #9883.

Change-Id: Ie9b822d6b18b551c56158447cc042faceb805842

4 years ago(backport) meson: allow systemd.directives and .index to be built if -Dman=false
Zbigniew Jędrzejewski-Szmek [Sun, 8 Jul 2018 13:14:46 +0000 (15:14 +0200)]
(backport) meson: allow systemd.directives and .index to be built if -Dman=false

See 559d215b6733bb46533a52080522a7feca183aa8 for justification.

Change-Id: I1355f202ffc0492203b28fa23fe33601fc6c31cb

4 years ago(backport) meson: restore building of man pages on demand even if -Dman=false
Zbigniew Jędrzejewski-Szmek [Fri, 24 Nov 2017 13:00:29 +0000 (14:00 +0100)]
(backport) meson: restore building of man pages on demand even if -Dman=false

I want to configure -Dman=false for speed, but be able to build a specific
man page sometimes to check my edits. Commit 5b316b9ea6c broke this by mistake.
Let's adjust the condition to better match the logic of disabling tests only
if xsltproc is really not found.

Change-Id: Ife24351843f33a8e9da503fdba437e7acf513ad6

4 years agoRevert "pid1: drop kdbus_fd and all associated logic"
Adrian Szyndela [Thu, 6 Feb 2020 08:39:24 +0000 (09:39 +0100)]
Revert "pid1: drop kdbus_fd and all associated logic"

This reverts commit 232f6754f60ae803c992ca156cbc25fa80a5b9db.

Change-Id: Icf5b83d52cca35e6576850698c7aec15b6a42fe9

4 years agoMerge v234 into tizen
Adrian Szyndela [Wed, 5 Feb 2020 11:35:36 +0000 (12:35 +0100)]
Merge v234 into tizen

Change-Id: If676fe909a40eadc60ee5ff023abe4ee2c64b44e

4 years agotests: correct test-bus-benchmark test name 48/225948/1 sandbox/leemgs/test
Adrian Szyndela [Tue, 25 Feb 2020 15:51:26 +0000 (16:51 +0100)]
tests: correct test-bus-benchmark test name

Additionally, move the entry to the alphabetically correct position after
the name change.

Change-Id: I348bae84a948eb35cfcb9858465156c66b6f01eb

4 years agoRevert "sd-bus: don't assert() on valid signatures" 47/225947/1
Adrian Szyndela [Tue, 25 Feb 2020 15:36:28 +0000 (16:36 +0100)]
Revert "sd-bus: don't assert() on valid signatures"

This reverts commit ce8057d08863785b3d4b1b398ce848d42200a913.

This commit added excess 'append'. It caused assert in tests
due to not enough 'read's.

Change-Id: I27e1cb2acbe4a086fde15810ef132d1747ee8d81

4 years agoIncrease the max number of INotify instances per real user ID 46/225046/2 accepted/tizen/unified/20200218.145915 submit/tizen/20200217.070252
Hyotaek Shim [Mon, 17 Feb 2020 04:54:18 +0000 (13:54 +0900)]
Increase the max number of INotify instances per real user ID

Change-Id: I49a2ed1881d03def82be5a83ae5b6eb0db01ce6c
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
4 years agoExclude systemd-remount-fs.service 87/222987/1 accepted/tizen/unified/20200206.023247 submit/tizen/20200205.104317
INSUN PYO [Wed, 22 Jan 2020 02:21:43 +0000 (11:21 +0900)]
Exclude systemd-remount-fs.service

Change-Id: I653420164edb44a7a941f5c98887dc3ee6d4852e

4 years agoApply priv_keygrab:r ACL rule to /dev/input 69/222069/1 accepted/tizen/unified/20200114.130733 submit/tizen/20200113.072921
Hyotaek Shim [Thu, 9 Jan 2020 09:23:18 +0000 (18:23 +0900)]
Apply priv_keygrab:r ACL rule to /dev/input

Change-Id: I8174ccd81aa3970a76a6f3680234dae77d920429
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
4 years agomissing_syscall: when adding syscall replacements, use different names (#8229) 84/221484/1 accepted/tizen/unified/20200113.130729 submit/tizen/20200107.015704
Zbigniew Jędrzejewski-Szmek [Wed, 21 Feb 2018 13:04:50 +0000 (14:04 +0100)]
missing_syscall: when adding syscall replacements, use different names (#8229)

In meson.build we check that functions are available using:
    meson.get_compiler('c').has_function('foo')
which checks the following:
- if __stub_foo or __stub___foo are defined, return false
- if foo is declared (a pointer to the function can be taken), return true
- otherwise check for __builtin_memfd_create

_stub is documented by glibc as
   It defines a symbol '__stub_FUNCTION' for each function
   in the C library which is a stub, meaning it will fail
   every time called, usually setting errno to ENOSYS.

So if __stub is defined, we know we don't want to use the glibc version, but
this doesn't tell us if the name itself is defined or not. If it _is_ defined,
and we define our replacement as an inline static function, we get an error:

In file included from ../src/basic/missing.h:1358:0,
                 from ../src/basic/util.h:47,
                 from ../src/basic/calendarspec.h:29,
                 from ../src/basic/calendarspec.c:34:
../src/basic/missing_syscall.h:65:19: error: static declaration of 'memfd_create' follows non-static declaration
 static inline int memfd_create(const char *name, unsigned int flags) {
                   ^~~~~~~~~~~~
.../usr/include/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here
 int memfd_create (const char *__name, unsigned int __flags) __THROW;
     ^~~~~~~~~~~~

To avoid this problem, call our inline functions different than glibc,
and use a #define to map the official name to our replacement.

Fixes #8099.

v2:
- use "missing_" as the prefix instead of "_"

v3:
- rebase and update for statx()

  Unfortunately "statx" is also present in "struct statx", so the define
  causes issues. Work around this by using a typedef.

I checked that systemd compiles with current glibc
(glibc-devel-2.26-24.fc27.x86_64) if HAVE_MEMFD_CREATE, HAVE_GETTID,
HAVE_PIVOT_ROOT, HAVE_SETNS, HAVE_RENAMEAT2, HAVE_KCMP, HAVE_KEYCTL,
HAVE_COPY_FILE_RANGE, HAVE_BPF, HAVE_STATX are forced to 0.

Setting HAVE_NAME_TO_HANDLE_AT to 0 causes an issue, but it's not because of
the define, but because of struct file_handle.

(backported from commit 5187dd2c403caf92d09f3491e41f1ceb3f10491f)

Change-Id: I46ed455f1d0a7c6eacd69b04f22deb756cc7590f

4 years agofix includes 83/221483/1
Matija Skala [Wed, 15 Mar 2017 12:21:10 +0000 (13:21 +0100)]
fix includes

linux/sockios.h is needed for the SIOCGSTAMPNS macro

xlocale.h is included indirectly in glibc and doesn't even exist in
other libcs

(cherry picked from commit 284d1cd0a12cad96a5ea61d1afb0dd677dbd147e)

Change-Id: I4c0c42b0a58fb79b165ac168a9ced6bca8e07152

4 years agonss-util: silence warning about deprecated RES_USE_INET6 82/221482/1
Zbigniew Jędrzejewski-Szmek [Wed, 1 Feb 2017 00:55:33 +0000 (19:55 -0500)]
nss-util: silence warning about deprecated RES_USE_INET6

src/nss-resolve/nss-resolve.c: In function ‘_nss_resolve_gethostbyname_r’:
src/nss-resolve/nss-resolve.c:680:13: warning: RES_USE_INET6 is deprecated
 NSS_GETHOSTBYNAME_FALLBACKS(resolve);
             ^~~~~~~~~~~~~~~~~~~~~~~~~

In glibc bz #19582, RES_USE_INET6 was deprecated. This might make sense for
clients, but they didn't take into account nss module implementations which
*must* continue to support the option. glibc internally defines
DEPRECATED_RES_USE_INET6 which can be used without emitting a warning, but
it's not exported publicly. Let's do the same, and just copy the definition
to our header.

(cherry picked from commit 6154d33de3f15bbd5d5df718103af9c37ba0a768)

Change-Id: Ib3c91b6752800385429c51a95572a3b2b1d31ad3

4 years agocore: be stricter when handling PID files and MAINPID sd_notify() messages 52/219152/2 accepted/tizen/unified/20191206.121310 submit/tizen/20191205.121153
Mateusz Moscicki [Mon, 18 Nov 2019 13:39:07 +0000 (14:39 +0100)]
core: be stricter when handling PID files and MAINPID sd_notify() messages

Let's be more restrictive when validating PID files and MAINPID=
messages: don't accept PIDs that make no sense, and if the configuration
source is not trusted, don't accept out-of-cgroup PIDs. A configuratin
source is considered trusted when the PID file is owned by root, or the
message was received from root.

This should lock things down a bit, in case service authors write out
PID files from unprivileged code or use NotifyAccess=all with
unprivileged code. Note that doing so was always problematic, just now
it's a bit less problematic.

When we open the PID file we'll now use the CHASE_SAFE chase_symlinks()
logic, to ensure that we won't follow an unpriviled-owned symlink to a
privileged-owned file thinking this was a valid privileged PID file,
even though it really isn't.

Fixes: #6632
(cherry picked from commit db256aab13d8a89d583ecd2bacf0aca87c66effc)

Resolves: #1663143

Change-Id: Id91df4fb9e46224a12dc6c260a1c3b8a9e4cc553

4 years agonotify: add new --uid= command 51/219151/2
Mateusz Moscicki [Mon, 18 Nov 2019 12:23:52 +0000 (13:23 +0100)]
notify: add new --uid= command

The new --uid= switch allows selecting the UID from which the
notificaiton messages shall originate.

This is primarily useful for testing purposes, but might have other
uses.

(cherry picked from commit: 65c6b99094580afa186199d8091cd7536900526c)

Change-Id: I1531bb34818ef8daa3eb8a7c8e973ef9d4aa1ba1

4 years agosd-dameon: also sent ucred when our UID differs from EUID 50/219150/2
Mateusz Moscicki [Mon, 18 Nov 2019 11:42:23 +0000 (12:42 +0100)]
sd-dameon: also sent ucred when our UID differs from EUID

Let's be explicit, and always send the messages from our UID and never
our EUID. Previously this behaviour was conditionalized only on whether
the PID was specified, which made this non-obvious.

(cherry picked from commit 9e1d021ee3f147486c5cfac69b3cbf6f4b36eb79)

Change-Id: I732ce2169e00f2f5fe8e7f7403d6f31dc66842a2

4 years agofs-util: add new chase_symlinks() flag CHASE_OPEN 49/219149/3
Mateusz Moscicki [Wed, 20 Nov 2019 13:52:46 +0000 (14:52 +0100)]
fs-util: add new chase_symlinks() flag CHASE_OPEN

The new flag returns the O_PATH fd of the final component, which may be
converted into a proper fd by open()ing it again through the
/proc/self/fd/xyz path.

Together with O_SAFE this provides us with a somewhat safe way to open()
files in directories potentially owned by unprivileged code, where we
want to refuse operation if any symlink tricks are played pointing to
privileged files.

(cherry picked from commit 1ed34d75d4f21d2335c5625261954c848d176ae6)

Change-Id: I5e5ce0affec97e4d19483b4f534db99f4f950f89
Related: #1663143

4 years agofs-util: add new CHASE_SAFE flag to chase_symlinks() 48/219148/2
Mateusz Moscicki [Wed, 20 Nov 2019 13:34:23 +0000 (14:34 +0100)]
fs-util: add new CHASE_SAFE flag to chase_symlinks()

When the flag is specified we won't transition to a privilege-owned
file or directory from an unprivileged-owned one. This is useful when
privileged code wants to load data from a file unprivileged users have
write access to, and validates the ownership, but want's to make sure
that no symlink games are played to read a root-owned system file
belonging to a different context.

(cherry picked from commit f14f1806e329fe92d01f15c22a384702f0cb4ae0)

Change-Id: I86dfede53114a23d708744a9c47abc9eaf05a8d1
Related: #1663143

4 years agobackport chase_symlinks 47/219147/1
Mateusz Moscicki [Wed, 13 Nov 2019 15:32:24 +0000 (16:32 +0100)]
backport chase_symlinks

Related: #1663143

Change-Id: I57d945a208ade174c89ea2736357d8bce541a46f

5 years agopid1: process zero-length notification messages again 75/216975/3 accepted/tizen/unified/20191113.123543 submit/tizen/20191111.225201
Zbigniew Jędrzejewski-Szmek [Thu, 29 Sep 2016 14:06:02 +0000 (16:06 +0200)]
pid1: process zero-length notification messages again

This undoes 531ac2b234. I acked that patch without looking at the code
carefully enough. There are two problems:
- we want to process the fds anyway
- in principle empty notification messages are valid, and we should
  process them as usual, including logging using log_unit_debug().

CVE-2016-7795

Change-Id: I1dfb10c7a3ffeb7a5ed9d0ace4a94bee36c846b4

5 years agologind: change the power key to disabled 26/216926/1
INSUN PYO [Tue, 5 Nov 2019 02:51:19 +0000 (11:51 +0900)]
logind: change the power key to disabled

Tizen does not support power off without deviced.
So, you need to turn off the power key function in logind.

1. Disable TAG+="power-switch" uevent rules because logind uses "power-switch" uevent to recognize the power key.
2. Change default behavior for power key to ignore.

Change-Id: I0523d4cc46ce2edd05e479e9101c6d20f70b4296

5 years agoRemove the smack exec label of busctl 74/215374/1 accepted/tizen_5.5_unified_mobile_hotfix tizen_5.5_mobile_hotfix accepted/tizen/5.5/unified/20191031.012553 accepted/tizen/5.5/unified/mobile/hotfix/20201027.071517 accepted/tizen/unified/20191008.101551 submit/tizen/20191007.114341 submit/tizen_5.5/20191031.000008 submit/tizen_5.5_mobile_hotfix/20201026.185108 tizen_5.5.m2_release
Hyotaek Shim [Mon, 7 Oct 2019 11:43:04 +0000 (20:43 +0900)]
Remove the smack exec label of busctl

Change-Id: Iaab47bd04b0c480fa2c2e9e5deeeded9d461c4b4
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
5 years agoChange smack label of /dev/full from '_' to '*' 59/213659/2 accepted/tizen/unified/20190911.111728 submit/tizen/20190910.022414
Hyungju Lee [Tue, 10 Sep 2019 02:06:08 +0000 (11:06 +0900)]
Change smack label of /dev/full from '_' to '*'

Change-Id: I706f14f7e8d767b0d7904a08e793f424c47e001b

5 years agoAdd dbus policy for org.tizen.system.BootingDone 34/212534/2 accepted/tizen/unified/20190828.011033 submit/tizen/20190827.025238 submit/tizen/20190827.044306
Hyotaek Shim [Thu, 22 Aug 2019 11:46:11 +0000 (20:46 +0900)]
Add dbus policy for org.tizen.system.BootingDone

Change-Id: I8f0bd7887b5f1cbd7637c00e03240e4d5e09e4c7
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
5 years agoRevert "tizen: Add additional units for "unified" user session" 17/212317/2 accepted/tizen/unified/20190822.045501 submit/tizen/20190820.090809
Yunmi Ha [Tue, 20 Aug 2019 08:06:57 +0000 (08:06 +0000)]
Revert "tizen: Add additional units for "unified" user session"

This reverts commit a2a4073acee7935040cc25380d4f51010903d9ca.

We've optimized systemd-user without unified system/session.
So, we revert the patch for unified system/session.

Change-Id: I11f6a43185aa3531c05787226a896d4a76cf2e11

5 years agoUse separate udev tag for devices in user session 59/210959/1 accepted/tizen/unified/20190820.115107 submit/tizen/20190819.093056
Paweł Szewczyk [Fri, 26 Jul 2019 08:48:24 +0000 (10:48 +0200)]
Use separate udev tag for devices in user session

The system-user tag can be used to mark devices that will be enumerated by
systemd in 'systemd --user' instance.

Change-Id: I5889f50df6c329de36c2544ee5cf1ba1c52ad433
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
5 years agoRework delayed.target 64/210464/13 accepted/tizen/unified/20190730.112055 submit/tizen/20180808.063658 submit/tizen/20190726.064005 submit/tizen/20190729.014500
INSUN PYO [Fri, 19 Jul 2019 08:23:57 +0000 (17:23 +0900)]
Rework delayed.target

start delayed.service --> finish default.target --> start all of delayed.service -->
finish delayed.target --> StartupFinished

Change-Id: I2f291ea8b5f535157eec4f105f2c37b0cea448c9

5 years agoChange the config value of the "RemainAfterExit=" ("true" -> "yes") 35/208535/1
INSUN PYO [Wed, 26 Jun 2019 00:12:45 +0000 (09:12 +0900)]
Change the config value of the "RemainAfterExit=" ("true" -> "yes")

Change-Id: I56db28be6f0cecd0562ba8db6bb1d4af0b1a3b7b

5 years agoAdd delayed target 58/207558/4 accepted/tizen/unified/20190618.045943 submit/tizen/20190617.014724
INSUN PYO [Fri, 7 Jun 2019 06:30:41 +0000 (15:30 +0900)]
Add delayed target

Change-Id: I0527d1387500c699be0fbc319c702a77d9ae587b

5 years agoRemove container feature 70/204870/2 accepted/tizen/unified/20190611.050121 submit/tizen/20190610.071815
INSUN PYO [Mon, 29 Apr 2019 02:48:02 +0000 (11:48 +0900)]
Remove container feature

Change-Id: Ie6c5459f4cb6cafe55bdddf8b1857862ec64c967

5 years agoRevert: Description : Adding new interfaces related to user information. 55/201355/3 accepted/tizen/unified/20190530.043144 submit/tizen/20190529.085934
INSUN PYO [Wed, 13 Mar 2019 05:42:46 +0000 (14:42 +0900)]
Revert: Description : Adding new interfaces related to user information.

Container feature is removed.
So functions associated with the container user should also be removed.

Change-Id: I862eeacdcc3148be8ac2e66a8de47b240d55b2e2

5 years agotizen: Add additional units for "unified" user session 90/204690/2
Mateusz Moscicki [Thu, 25 Apr 2019 10:17:53 +0000 (12:17 +0200)]
tizen: Add additional units for "unified" user session

The unified user session is about moving user session units, managed by
systemd --user, to main systemd, where it's managed as part of newly
created user@.target.

user@.target will contain same units as previously available in user/,
with same UID and environment setup. systemd instance is used for unit
to be able to specify UID (inherited from user@.target).

The rationale behind this work is following:

* VD requirement to remove user session support
* boot time optimization requirements, due to:

   + 'systemd --user' taking 1s its own startup that could be used for
     unit startup
   + ability to better rearrange units if these managed by one systemd
     instance

Unit installed by this commit will not be used till user login mechanism
will be changed in systemd package (via changing pam_systemd to start
user@.target, rather than user@.service).

Change-Id: I6c9512fda4c0c4275d78a6ca71372debc4d7e96e

5 years agoChange the default smack label of /dev 07/205707/1 accepted/tizen/unified/20190510.111117 submit/tizen/20190509.015828
Hyotaek Shim [Wed, 8 May 2019 11:55:31 +0000 (20:55 +0900)]
Change the default smack label of /dev

(Before)
smack access label: *
default access label: _

(After)
smack access label: *
default access label: *

Change-Id: Iffd4793655a8080501388d40a2f812269b8613cb
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
5 years agoAdd SECLABEL for /dev/net/tun 02/204102/1 sandbox/songinha/tizen accepted/tizen/unified/20190422.003838 submit/tizen/20190419.090512
Cheoleun Moon [Fri, 19 Apr 2019 07:31:03 +0000 (16:31 +0900)]
Add SECLABEL for /dev/net/tun

Change smack label of /dev/net/tun to *

Change-Id: Ie3c7d4e908a077064cb4d5ba5e4e082a7409da64
Signed-off-by: Cheoleun Moon <chleun.moon@samsung.com>
5 years agoRevert "core: fix the CGROUP spawning error as a workaround" 70/203570/1
INSUN PYO [Tue, 16 Apr 2019 04:25:07 +0000 (13:25 +0900)]
Revert "core: fix the CGROUP spawning error as a workaround"

This reverts commit adce88455e758166ad4f2103724cd34c11c5f141.

Change-Id: Ie76d6183f8f5966fa9187666a5777c1c50926353

5 years agoFixed an incorrect parameter passing to the log function. 18/203518/1
INSUN PYO [Mon, 15 Apr 2019 11:13:25 +0000 (20:13 +0900)]
Fixed an incorrect parameter passing to the log function.

Change-Id: I5274fd466e79b7773c4903fcfc17f89b3e5cad53

5 years agoEnable stack protection option, -fstack-clash-protection 84/203484/1 accepted/tizen/unified/20190416.071514 submit/tizen/20190415.071553 submit/tizen/20190416.004818
Hyotaek Shim [Mon, 15 Apr 2019 07:08:10 +0000 (16:08 +0900)]
Enable stack protection option, -fstack-clash-protection

http://suprem.sec.samsung.net/jira/browse/SATIZENVUL-1930
http://suprem.sec.samsung.net/jira/browse/SATIZENVUL-1933

Change-Id: I0c3292fd0d7fdd69a1aa902a1e9d8b75a6f11d87
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
5 years agoRevert: Mv /etc/systemd/{system,user} to /opt/etc/systemd/ 39/201239/1
INSUN PYO [Mon, 11 Mar 2019 12:27:22 +0000 (21:27 +0900)]
Revert: Mv /etc/systemd/{system,user} to /opt/etc/systemd/

No more modules to modify /etc/systemd.

Change-Id: I39d5303a79201bf9573b83c66b5c64232e67ffae

5 years agojournal: do not remove multiple spaces after identifier in syslog message 14/200014/1
Yu Watanabe [Fri, 10 Aug 2018 02:07:54 +0000 (11:07 +0900)]
journal: do not remove multiple spaces after identifier in syslog message

Single space is used as separator.
C.f. discussions in #156.

Fixes #9839 introduced by a6aadf4ae0bae185dc4c414d492a4a781c80ffe5.

Change-Id: I2cabac6e0d99634aeb148b4d7698a67d84b546dd

5 years agojournal: fix syslog_parse_identifier() 05/200005/1
Yu Watanabe [Wed, 8 Aug 2018 06:06:36 +0000 (15:06 +0900)]
journal: fix syslog_parse_identifier()

Fixes #9829.

Change-Id: I6d48464ad02397990973c93153cdbf2e0a6e26cd

5 years agobusctl: set execute label as 'System' 57/198757/3 accepted/tizen/unified/20190201.061328 submit/tizen/20190131.021840 submit/tizen/20190131.080207
sanghyeok.oh [Tue, 29 Jan 2019 07:19:49 +0000 (16:19 +0900)]
busctl: set execute label as 'System'

Change-Id: Id76f4cc5c2ab52c61355033fb4bcf8681d2cedbf
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
5 years agoMinor fix regarding "update-alternatives --remove systemd-shutdown.." 51/198551/1
Hyotaek Shim [Fri, 25 Jan 2019 08:50:42 +0000 (17:50 +0900)]
Minor fix regarding "update-alternatives --remove systemd-shutdown.."

Change-Id: I33510d36510a468c9fa67265f3ba3e73934080a0
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
5 years agotizen: Allow replacing systemd-shutdown 06/197106/7 accepted/tizen/unified/20190128.061802 submit/tizen/20190124.124507
Karol Lewandowski [Wed, 9 Jan 2019 15:16:19 +0000 (16:16 +0100)]
tizen: Allow replacing systemd-shutdown

This will be used by deviced to install custom shutdown handler.

Change-Id: I1f921fbae7d05f9ba937bb68cfa997a310407484

5 years agodbus1-generator: Fixed the problem of passing NULL argument to strcmp 63/197663/1
INSUN PYO [Tue, 15 Jan 2019 05:19:43 +0000 (14:19 +0900)]
dbus1-generator: Fixed the problem of passing NULL argument to strcmp

If /usr/share/dbus-1/[system-]services does not have "Exec=" field, "exec" variable is NULL.
Passing NULL to strcmp, "Segmentation fault" occurs.

Change-Id: I04fa32d97452ab97dfd4cf4ec70a670fe96a2c09

5 years agoNEWS: add one more name and adjust location v240
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:52:16 +0000 (19:52 +0100)]
NEWS: add one more name and adjust location

5 years agoMerge pull request #11239 from poettering/news-v240-final
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:49:54 +0000 (19:49 +0100)]
Merge pull request #11239 from poettering/news-v240-final

NEWS and build system bump for 240

5 years agotree-wide: use assert_se() for signal operations with constants
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 08:20:15 +0000 (09:20 +0100)]
tree-wide: use assert_se() for signal operations with constants

Continuation of a3ebe5eb620e49f0d24082876cafc7579261e64f:
in other places we sometimes use assert_se(), and sometimes normal error
handling. sigfillset and sigaddset can only fail if mask is NULL (which cannot
happen if we are passing in a reference), or if the signal number is invalid
(which really shouldn't happen when we are using a constant like SIGCHLD. If
SIGCHLD is invalid, we have a bigger problem). So let's simplify things and
always use assert_se() in those cases.

In sigset_add_many() we could conceivably pass an invalid signal, so let's keep
normal error handling here. The caller can do assert_se() around the
sigprocmask_many() call if appropriate.

'>= 0' is used for consistency with the rest of the codebase.

5 years agoMerge pull request #11206 from cdown/cgroup_no_v1
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:48:51 +0000 (19:48 +0100)]
Merge pull request #11206 from cdown/cgroup_no_v1

cgroup: Imply systemd.unified_cgroup_hierarchy=1 on cgroup_no_v1=all

5 years agosd-device: ignore bind/unbind events for now
Dmitry Torokhov [Sun, 9 Dec 2018 19:59:34 +0000 (11:59 -0800)]
sd-device: ignore bind/unbind events for now

Until systemd/udev are ready for the new events and do not flush entire
device state on each new event received, we should ignore them.

5 years agoRevert "sleep: offer hibernation only if the kernel image still exists"
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 10:01:34 +0000 (11:01 +0100)]
Revert "sleep: offer hibernation only if the kernel image still exists"

This reverts commit edda44605f06a41fb86b7ab8128dcf99161d2344.

The kernel explicitly supports resuming with a different kernel than the one
used before hibernation. If this is something that shouldn't be supported, the
place to change this is in the kernel. We shouldn't censor something that this
exclusively in the kernel's domain.

People might be using this to switch kernels without restaring programs, and
we'd break this functionality for them.

Also, even if resuming with a different kernel was a bad idea, we don't really
prevent that with this check, since most users have more than one kernel and
can freely pick a different one from the menu. So this only affected the corner
case where the kernel has been removed, but there is no reason to single it
out.

5 years agoMerge pull request #11050 from poettering/resolved-domain-route
Lennart Poettering [Fri, 21 Dec 2018 17:03:58 +0000 (18:03 +0100)]
Merge pull request #11050 from poettering/resolved-domain-route

resolved: beef up domain routing

5 years agoMerge pull request #11210 from thom311/dhcp-set-client-id-no-inval
Lennart Poettering [Fri, 21 Dec 2018 17:00:42 +0000 (18:00 +0100)]
Merge pull request #11210 from thom311/dhcp-set-client-id-no-inval

dhcp: don't enforce hardware address length for sd_dhcp_client_set_client_id()

5 years agotree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 09:21:41 +0000 (10:21 +0100)]
tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0

All underlying glibc calls are free to return NULL if the size argument
is 0. We most often call those functions with a fixed argument, or at least
something which obviously cannot be zero, but it's too easy to forget.

E.g. coverity complains about "rows = new0(JsonVariant*, n_rows-1);" in
format-table.c There is an assert that n_rows > 0, so we could hit this
corner case here. Let's simplify callers and make those functions "safe".

CID #1397035.

The compiler is mostly able to optimize this away:
$ size build{,-opt}/src/shared/libsystemd-shared-239.so
(before)
   text    data     bss     dec     hex filename
2643329  580940    3112 3227381  313ef5 build/src/shared/libsystemd-shared-239.so     (-O0 -g)
2170013  578588    3089 2751690  29fcca build-opt/src/shared/libsystemd-shared-239.so (-03 -flto -g)
(after)
   text    data     bss     dec     hex filename
2644017  580940    3112 3228069  3141a5 build/src/shared/libsystemd-shared-239.so
2170765  578588    3057 2752410  29ff9a build-opt/src/shared/libsystemd-shared-239.so

5 years agoanalyze: add assert to verify we are not dividing by 0
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 07:20:41 +0000 (08:20 +0100)]
analyze: add assert to verify we are not dividing by 0

CID #1397051.