Commit Graph

29123 Commits

Author SHA1 Message Date
Mantas Mikulėnas 52c2abed4b
github: remove checkboxes from ISSUE_TEMPLATE
The issue list page thinks those are in fact todo items.
2017-05-22 16:06:50 +03:00
Lennart Poettering 4dd53da97d sd-dhcp: library code shouldn't log above LOG_DEBUG (#6001)
Let's downgrade the warning introduced by
955d99edc7 to debug, as we really
shouldn't log at more than debug level from library code.

(And while we are at it, print the MTU as the right (unsigned) type in
the format string.)
2017-05-22 08:38:01 -04:00
Lennart Poettering 401a38e770 Merge pull request #5958 from keszybz/explicit-log-errno
Use explicit errno in log calls
2017-05-22 10:12:18 +02:00
AsciiWolf c63b01c6f2 mkosi: update Debian config for mkosi (#5997)
* mkosi.debian: fix libidn2 package name
* mkosi.debian: drop duplicate diffutils package
* mkosi.debian: add missing g++ package
2017-05-21 22:24:30 -04:00
Matthias Greiner 955d99edc7 Allow bad MTU values with warning to be able to connect to the machine. (#5954)
Ensure the MTU value is valid. Emit a warning and ignore otherwise.
2017-05-21 21:11:25 -04:00
Djalal Harouni 7a093ea246 Merge pull request #5990 from keszybz/logind
A bunch of sd-login improvements
2017-05-21 07:14:21 +02:00
Djalal Harouni a1f4d73b7c Merge pull request #6000 from keszybz/fix-oom-warning
core/load-droping: avoid oom warning when the unit symlink is not a template
2017-05-21 07:11:33 +02:00
Zbigniew Jędrzejewski-Szmek e450032f09 core/load-droping: avoid oom warning when the unit symlink is not a template
unit_name_template returns -EINVAL if the unit name is not a template, but
the code assumed that OOM is the only failure mode. Fix that to emit the warning
if a non-template unit is encountered (because in this case we expect the name
to match exactly), and just skip the warning on other errors (presumably oom).

Fixes #5543.
2017-05-20 19:34:50 -04:00
Evgeny Vereshchagin 4417e1a33d Merge pull request #5960 from keszybz/journald-memleak
Journald and journal-remote memleak fixes
2017-05-21 01:41:48 +03:00
Daniel Wang d6eac9bd06 DHCP: when adding static routes set scopes properly (#5982)
DHCP responses could include static routes, but unfortunately not an
option to tell what scope to use. So it's important that the client sets
it properly.

This mimics what the `ip route add` command does when adding a static
route without an explicit scope:

* If the destination IP is on the local host, use scope `host`
* Otherwise if the gateway IP is null (direct route), use scope `link`
* If anything else, use the current default `global`.

Fixes #5979.
2017-05-20 07:05:18 -04:00
Zbigniew Jędrzejewski-Szmek c6e9e16f77 journald: fix trivial memleak
Fixes #5516.
2017-05-19 19:15:26 -04:00
Zbigniew Jędrzejewski-Szmek 2da03cbf9d udev-rules: add helper function for logging
Avoid repeating the same conditional four times. Error messages are
capitalized.
2017-05-19 15:03:14 -04:00
Zbigniew Jędrzejewski-Szmek 9c0565b2c3 basic/time-util: make parsing of dual_timestamp more strict
*scanf functions set errno on i/o error. For sscanf, this doesn't really apply,
so (based on the man page), it seems that errno is unlikely to be ever set to a
useful value. So just ignore errno. The error message includes the string that
was parsed, so it should be always pretty clear why parsing failed.

On the other hand, detect trailing characters and minus prefix that weren't
converted properly. This matches what our safe_ato* functions do. Add tests to
elucidate various edge cases.
2017-05-19 15:01:20 -04:00
Zbigniew Jędrzejewski-Szmek bf32e38576 test-parse-util: verify that ato[ui] actually rejects trailing garbage 2017-05-19 14:37:48 -04:00
Zbigniew Jędrzejewski-Szmek 25f027c5ef tree-wide: when %m is used in log_*, always specify errno explicitly
All those uses were correct, but I think it's better to be explicit.
Using implicit errno is too error prone, and with this change we can require
(in the sense of a style guideline) that the code is always specified.

Helpful query: git grep -n -P 'log_[^s][a-z]+\(.*%m'
2017-05-19 14:24:03 -04:00
Lennart Poettering 07755554ab Merge pull request #5624 from glaubitz/x32
Fix multiple issues with incorrect usage of format specifiers
2017-05-19 19:17:57 +02:00
Zbigniew Jędrzejewski-Szmek 4b29a7f41f journald: process "binary" fields the same as text fields
MESSAGE=data\n and MESSAGE\n40000000data\n are both valid serializations, so
they should be stored in the journal. Before, MESSAGE, SYSLOG_FACILITY,
SYSLOG_IDENTIFIER, PRIORITY, and OBJECT_PID would be only honoured if they were
given in the first form.

Fixed #5973.
2017-05-19 13:02:57 -04:00
Zbigniew Jędrzejewski-Szmek 68944f196b journald: properly process multiple entries in the same native packet
For all except the last entry in a single packet, we would dispatch the
message to the journal, but not forward it, nor perform proper cleanup.
Rewrite the code to process each entry in a helper function, and make
server_process_native_message() just call this function in a loop.

Fixes #5643.

v2:
- properly decrement *remaining when processing entry separator
2017-05-19 13:02:17 -04:00
Zbigniew Jędrzejewski-Szmek 8924973ae2 shared/logs-show: avoid printing "(null)" when timestamp is not specified
$ perl -e 'print("MESSAGE\n", pack("q<", 1), "A\n\nMESSAGE=test2\n")' > message.bin
$ systemd-journal-remote -o /tmp/out.journal message.bin
$ journalctl -o export --file /tmp/out.journal
__CURSOR=s=b16c464c2db44384b29e75a564d8388e;i=1;b=6b0be47627bd4932913dc126012c21c0;m=0;t=0;x=b04263a253e357a
__REALTIME_TIMESTAMP=0
__MONOTONIC_TIMESTAMP=0
_BOOT_ID=6b0be47627bd4932913dc126012c21c0
MESSAGE=A

$ journalctl -o verbose --file /tmp/out.journal
(null) [s=b16c464c2db44384b29e75a564d8388e;i=1;b=6b0be47627bd4932913dc126012c21c0;m=0;t=0;x=b04263a253e357a]
    MESSAGE=A

This is changed to
$ build/journalctl -o verbose --file /tmp/out.journal
(no timestamp) [s=b16c464c2db44384b29e75a564d8388e;i=1;b=6b0be47627bd4932913dc126012c21c0;m=0;t=0;x=b04263a253e357a]
    MESSAGE=A

We should deal gracefully with unexpected input.
2017-05-19 11:40:56 -04:00
Zbigniew Jędrzejewski-Szmek 2ddb70d26f journal-remote: fix memleak of the name of the remote source 2017-05-19 11:40:56 -04:00
Zbigniew Jędrzejewski-Szmek 731e10f3c5 journald: use unaligned_read instead of memcpy 2017-05-19 11:40:53 -04:00
Alexey Brodkin 27b09f1f1e architecture: add Synopsys DesignWare ARC cores support (#5992)
DesignWare ARC Processors are a family of 32-bit CPUs from Synopsys
used extensively in SoCs of different vendors.
2017-05-19 10:55:24 -04:00
Hans de Goede 4e6b9b2049 hwdb: Fix mapping for home-key on Cube iWork8 air (#5994)
The intent of the hwdb entry for the Cube iWork8 air tablet buttons is
to fix them being swapped. The kernel is using left-meta for the
home key (it is being treated as the windows key on keyboards, as it has
a windows logo on most x86 tablets).

Fix the hwdb entry to only swap the buttons and not change the keycode
emitted by the home key.
2017-05-19 10:05:27 -04:00
Matija Skala fe9938888b Fix includes (#5980)
Needed on musl.
2017-05-19 10:01:35 -04:00
Matija Skala 0060bb8f5b timesync/timesyncd-manager: fix format-specifier issue
timex::time::tv_sec can have different sizes depending on the
host architecture. On x32 in particular, it is 8 bytes
long while the long int type is only 4 bytes  long. Hence,
using li as a format specifier will trigger a format
error. Thus, better use PRI_TIME instead of li which is
actually the right format specifier to use for time_t.
2017-05-19 14:40:07 +02:00
Timothée Ravier ac9de0b379 core: open /proc/self/mountinfo early to allow mounts over /proc (#5985)
Enable masking the /proc folder using the 'InaccessiblePaths' unit
option.

This also slightly simplify mounts setup as the bind_remount_recursive
function will only open /proc/self/mountinfo once.

This is based on the suggestion at:
https://lists.freedesktop.org/archives/systemd-devel/2017-April/038634.html
2017-05-19 14:38:40 +02:00
Matija Skala 3bd7ef833c timesync/timesyncd-manager: fix format-specifier issues
timex::time::tv_usec and timex::freq can have different sizes
depending on the host architecture. On x32 in particular,
it is 8 bytes long while the long int type is only 4 bytes
long. Hence, using li as a format specifier will trigger
a format error. Thus, introduce a new format specifier
PRI_TIMEX which is defined as PRIi64 on x32 and li
everywhere else.
2017-05-19 14:38:25 +02:00
John Paul Adrian Glaubitz cc9211b030 udev/udevadm-monitor: fix format-specifier issue
timespec::tv_nsec can have different sizes depending on the
host architecture. On x32 in particular, it is 8 bytes long
while the long int type is only 4 bytes long. Hence, using
ld as a format specifier will trigger a format error. Thus,
explicitly cast timespec::tv_nsec to nsec_t and use PRI_NSEC
as the format specifier to make sure the sizes for both match.
2017-05-19 14:23:32 +02:00
John Paul Adrian Glaubitz b123d975ca journal/journald-console: fix format-specifier issue
timespec::tv_nsec can have different sizes depending on the
host architecture. On x32 in particular, it is 8 bytes long
while the long int type is only 4 bytes long. Hence, using
ld as a format specifier will trigger a format error. Thus,
explicitly cast timespec::tv_nsec to nsec_t and use PRI_NSEC
as the format specifier to make sure the sizes for both match.
2017-05-19 14:23:22 +02:00
Zbigniew Jędrzejewski-Szmek 0543105b0f sd-login: fix querying machines when machined is not running
We should not leak the internal error from missing directory and treat
that case the same as no machines.
2017-05-19 07:52:00 -04:00
Lennart Poettering 215a2db419 man: fix typo m86k → m68k (#5993) 2017-05-19 11:37:30 +02:00
Lennart Poettering b2d0c14214 Merge pull request #5598 from pfl/ndisc_prefix_delegation
Initial Router Advertisment implementation
2017-05-19 11:17:07 +02:00
Peter Hutterer 855cf359b2 udev: skip EVDEV_ABS override on devices without EV_ABS (#5984)
When we first handle a device with an EVDEV_ABS override, check if it has
EV_ABS bits. If not, print a warning and continue. This is required on devices
where the match string applies to multiple device nodes, not all of which may
have absolute axes.

Fixes https://github.com/systemd/systemd/issues/5079
2017-05-19 10:56:29 +02:00
Evgeny Vereshchagin e69c933694 Merge pull request #5988 from poettering/man-and-gcc
minor man page and gcc fixes
2017-05-19 09:34:39 +03:00
Zbigniew Jędrzejewski-Szmek 171f8f591f sd-login,test-login: return -ENODATA from sd_pid_get_unit too
After all, we might be running on a non-systemd system.
2017-05-18 22:32:19 -04:00
Lennart Poettering 86a48fb6f7 udev: turn off -Wformat-nonliteral for one safe case
c20e6de897 introduced a format string as
variable, but didn't turn off -Wformat-nonliteral warnings on it, thus
breaking the build. Let's fix that, by simply turning off the warning in
this case, as we know it's safe.
2017-05-18 22:26:12 -04:00
Lennart Poettering 6b7af82122 man: extend documentation on sd_bus_add_match a bit()
Explain briefly how the concept of "sd_bus_slot" works.

This recently came up on the mailing list, hence let's document this for
the next time.
2017-05-18 22:26:08 -04:00
Zbigniew Jędrzejewski-Szmek ce737f46cd test-login: make the test non-manual
test-login.c is largely rewritten to use _cleanup_ and give more meaningful
messages (function names are used instead of creative terms like "active
session", so that when something unexpected is returned, it's much easier to
see what function is responsible).

The monitoring part is only activated if '-m' is passed on the command line.

It runs against the information from /run/systemd/ in the live system, but that
should be OK: logind/sd-login interface is supposed to be stable and both
backwards and forwards compatible.

If not running in a login session, some tests are skipped.

Those two changes together mean that it's possible to run test-login in the
test suite.

Tests for sd_pid_get_{unit,user_unit,slice} are added.
2017-05-18 22:11:58 -04:00
Zbigniew Jędrzejewski-Szmek d440fb97ba sd-login: fix return value of sd_pid_get_user_unit
E.g. "/user.slice/user-1000.slice/session-15.scope" would cause -ENXIO to be
returned.
2017-05-18 22:11:58 -04:00
Zbigniew Jędrzejewski-Szmek 19d64d10c0 sd-login: fix return value of sd_pid_get_session
We'd return -ENXIO, even thoug -ENODATA is documented.
2017-05-18 21:59:59 -04:00
Zbigniew Jędrzejewski-Szmek cc6182e854 sd-login: always return two arrays of same length from sd_seat_get_sessions
sd_seat_get_sessions returns two arrays, that in principle should always match:
the session names and corresponding uids. The second array could be shorter only
if parsing or uid conversion fails. But in that case there is no way to tell
*which* uid is wrong, so they are *all* useless. It's better to simplify things and
just return an error if parsing fails.
2017-05-18 21:59:09 -04:00
Zbigniew Jędrzejewski-Szmek d3cfab3148 sd-login: read list of uids of sessions from UIDS not ACTIVE_SESSIONS
As described by Luke Shumaker:

  sd_seat_get_sessions looks at /run/systemd/seats/${seat_name}:SESSIONS to get
  the list of sessions (which I believe is correct), and at
  /run/systemd/seats/${seat_name}:ACTIVE_SESSIONS for the list of users (which
  I believe is incorrect); I believe that it should look at the UIDS field for
  the list of users. As far as I can tell, the ACTIVE_SESSIONS field is never
  even present in the seats file. I also believe that this has been broken
  since the function was first committed almost 6 years ago.

Fixes #5743.
2017-05-18 21:37:41 -04:00
Susant Sahani cb4d8b2d05 sd-netlink: Make use of IN_SET (#5977) 2017-05-18 12:56:36 +02:00
Daniel Wang 2d66f64865 gitignore: ignore /test-sd-dhcp-lease (#5983) 2017-05-17 20:14:58 -04:00
Lennart Poettering f731ad4456 Merge pull request #5957 from keszybz/test-c++
Test compilation under C++
2017-05-17 17:02:55 +02:00
Dimitri John Ledkov c20e6de897 udev: net_id add support for platform bus (ACPI, mostly arm64) devices (#5933)
Fixes: #5894
2017-05-17 15:28:35 +02:00
Zbigniew Jędrzejewski-Szmek d80e5b74e8 calendarspec: parse unix timestamps (@...) (#5947)
Fixes #5810.
2017-05-17 11:40:49 +02:00
Lennart Poettering a8b7e8a742 Merge pull request #5883 from garyttierney/fix-selinux
selinux: enable labeling and access checks for unprivileged users
2017-05-17 11:39:44 +02:00
Yu Watanabe 8ff213fd65 meson: do not use generate_gperfs.py for keyboard-keys-from-name.gperf (#5968)
Fixes #5967.
2017-05-15 20:51:22 -04:00
Charles Plessy f9d77d198e Add Lenovo UltraNav SK-8845 (#5963)
Closes #5952.
2017-05-15 08:16:16 -04:00