Merge pull request #7608 from poettering/more-news-v236
This commit is contained in:
@@ -132,3 +132,12 @@ Dmitriy Geels <dmitriy.geels@gmail.com>
|
||||
Beniamino Galvani <bgalvani@redhat.com> <bengal@users.noreply.github.com>
|
||||
Justin Capella <justincapella@gmail.com> <b1tninja@users.noreply.github.com>
|
||||
Daniel Șerbănescu <dasj19@users.noreply.github.com>
|
||||
Stanislav Angelovič <angelovic.s@gmail.com>
|
||||
Torsten Hilbrich <torsten.hilbrich@gmx.net>
|
||||
Tinu Weber <takeya@bluewin.ch>
|
||||
Gwendal Grignou <gwendal@chromium.org>
|
||||
José Bollo <jose.bollo@iot.bzh> <jobol@nonadev.net>
|
||||
Patryk Kocielnik <longer44@gmail.com>
|
||||
Lukáš Říha <cedel@centrum.cz>
|
||||
Alan Robertson <aroberts@zen.iomart.com> <alanjrobertson@gmail.com>
|
||||
Martin Steuer <martinsteuer@gmx.de>
|
||||
|
||||
@@ -7,12 +7,13 @@ CHANGES WITH 236 in spe:
|
||||
numdummies=0, preventing the kernel from automatically creating
|
||||
dummy0. All dummy interfaces must now be explicitly created.
|
||||
|
||||
* Unknown specifiers are now rejected. This applies to units and
|
||||
tmpfiles.d configuration. Any percent characters that are followed by
|
||||
a letter or digit that are not supposed to be interpreted as the
|
||||
beginning of a specifier should be escaped by doubling ("%%").
|
||||
(So "size=5%" is still accepted, as well as "size=5%,foo=bar", but
|
||||
not "LABEL=x%y%z" since %y and %z are not valid specifiers today.)
|
||||
* Unknown '%' specifiers in configuration files are now rejected. This
|
||||
applies to units and tmpfiles.d configuration. Any percent characters
|
||||
that are followed by a letter or digit that are not supposed to be
|
||||
interpreted as the beginning of a specifier should be escaped by
|
||||
doubling ("%%"). (So "size=5%" is still accepted, as well as
|
||||
"size=5%,foo=bar", but not "LABEL=x%y%z" since %y and %z are not
|
||||
valid specifiers today.)
|
||||
|
||||
* systemd-resolved now maintains a new dynamic
|
||||
/run/systemd/resolve/stub-resolv.conf compatibility file. It is
|
||||
@@ -32,6 +33,17 @@ CHANGES WITH 236 in spe:
|
||||
enabled in /etc/nsswitch.conf to ensure the UIDs assigned to these
|
||||
services are resolved properly.
|
||||
|
||||
* In /etc/fstab two new mount options are now understood:
|
||||
x-systemd.makefs and x-systemd.growfs. The former has the effect that
|
||||
the configured file system is formatted before it is mounted, the
|
||||
latter that the file system is resized to the full block device size
|
||||
after it is mounted (i.e. if the file system is smaller than the
|
||||
partition it resides on, it's grown). This is similar to the fsck
|
||||
logic in /etc/fstab, and pulls in systemd-makefs@.service and
|
||||
systemd-growfs@.service as necessary, similar to
|
||||
systemd-fsck@.service. Resizing is currently only supported on ext4
|
||||
and btrfs.
|
||||
|
||||
* In systemd-networkd, the IPv6 RA logic now optionally may announce
|
||||
DNS server and domain information.
|
||||
|
||||
@@ -155,23 +167,39 @@ CHANGES WITH 236 in spe:
|
||||
store again, ahead of POLLHUP or POLLERR when they are removed
|
||||
anyway.
|
||||
|
||||
Contributions from: aeywalee, Alan Jenkins, Alessandro Ghedini, Andrew
|
||||
Jeddeloh, Antonio Rojas, Ari, bleep_blop, Carsten Strotmann, Christian
|
||||
Brauner, Christian Hesse, Collin Eggert, Daniel Lockyer, Daniel Rusek,
|
||||
Dimitri John Ledkov, Evgeny Vereshchagin, Florian Klink, Franck Bui,
|
||||
gwendalcr, Hans de Goede, Jakub Wilk, Jérémy Rosen, jobol, John Lin,
|
||||
juga0, Krzysztof Nowicki, Lars Karlitski, Lars Kellogg-Stedman, Lauri
|
||||
Tirkkonen, Lennart Poettering, longersson, Lubomir Rintel, Lucas
|
||||
Werkmeister, lukas, Lukáš Nykrýn, Lukasz Rubaszewski, Maciej
|
||||
S. Szmigiero, macrothian, Mantas Mikulėnas, martingh, Mathieu
|
||||
Trudel-Lapierre, Matija Skala, Michael Biebl, Michael Vogt, Michal
|
||||
Sekletar, Mike Gilbert, Muhammet Kara, myrkr, Neil Brown, Ondrej
|
||||
Kozina, Patrik Flykt, Peter Hutterer, Piotr Drąg, Razvan Cojocaru,
|
||||
Robin McCorkell, Roland Hieber, Sergey Ptashnick, Shawn Landden, Shuang
|
||||
Liu, Simon Arlott, Simon Peeters, Stefan Agner, Susant Sahani, Sylvain
|
||||
Plantefève, Thomas Blume, Tom Stellard, Topi Miettinen, Vito Caputo,
|
||||
Vladislav Vishnyakov, WaLyong Cho, Yu Watanabe, Zbigniew
|
||||
Jędrzejewski-Szmek, Zeal Jagannatha
|
||||
* A new document UIDS-GIDS.md has been added to the source tree, that
|
||||
documents the UID/GID range and assignment assumptions and
|
||||
requirements of systemd.
|
||||
|
||||
* The watchdog device PID 1 will ping may now be configured through the
|
||||
WatchdogDevice= configuration file setting, or by setting the
|
||||
systemd.watchdog_service= kernel commandline option.
|
||||
|
||||
* systemd-resolved's gained support for registering DNS-SD services on
|
||||
the local network using MulticastDNS. Services may either be
|
||||
registered by dropping in a .dnssd file in /etc/systemd/dnssd/ (or
|
||||
the same dir below /run, /usr/lib), or through its D-Bus API.
|
||||
|
||||
Contributions from: Alan Jenkins, Alan Robertson, Alessandro Ghedini,
|
||||
Andrew Jeddeloh, Antonio Rojas, Ari, asavah, bleep_blop, Carsten
|
||||
Strotmann, Christian Brauner, Christian Hesse, Clinton Roy, Collin
|
||||
Eggert, Daniel Lockyer, Daniel Rusek, Dimitri John Ledkov, Dmitry
|
||||
Rozhkov, Edward A. James, Evgeny Vereshchagin, Florian Klink, Franck
|
||||
Bui, Gwendal Grignou, Hans de Goede, Harald Hoyer, Hristo Venev, Ikey
|
||||
Doherty, Jakub Wilk, Jérémy Rosen, Jiahui Xie, John Lin, José Bollo,
|
||||
Josef Andersson, juga0, Krzysztof Nowicki, Lars Karlitski, Lars
|
||||
Kellogg-Stedman, Lauri Tirkkonen, Lennart Poettering, Lubomir Rintel,
|
||||
Lucas Werkmeister, Lukáš Nykrýn, Lukáš Říha, Lukasz Rubaszewski, Maciej
|
||||
S. Szmigiero, Mantas Mikulėnas, Marcus Folkesson, Martin Steuer,
|
||||
Mathieu Trudel-Lapierre, Matija Skala, Max Resch, Michael Biebl,
|
||||
Michael Vogt, Michal Koutný, Michal Sekletar, Mike Gilbert, Muhammet
|
||||
Kara, Neil Brown, Olaf Hering, Ondrej Kozina, Patrik Flykt, Patryk
|
||||
Kocielnik, Peter Hutterer, Piotr Drąg, Razvan Cojocaru, Robin
|
||||
McCorkell, Roland Hieber, Sergey Ptashnick, Shawn Landden, Shuang Liu,
|
||||
Simon Arlott, Simon Peeters, Stanislav Angelovič, Stefan Agner, Susant
|
||||
Sahani, Sylvain Plantefève, Thomas Blume, Tinu Weber, Tom Stellard,
|
||||
Topi Miettinen, Torsten Hilbrich, Vito Caputo, Vladislav Vishnyakov,
|
||||
WaLyong Cho, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Zeal Jagannatha
|
||||
|
||||
— Berlin, 2017-12-XX
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
@@
|
||||
expression e;
|
||||
statement s;
|
||||
@@
|
||||
- if (e == NULL)
|
||||
+ if (!e)
|
||||
s
|
||||
@@
|
||||
expression e;
|
||||
statement s;
|
||||
@@
|
||||
- if (e != NULL)
|
||||
+ if (e)
|
||||
s
|
||||
@@ -147,7 +147,7 @@ static int verify_socket(Unit *u) {
|
||||
}
|
||||
|
||||
static int verify_executable(Unit *u, ExecCommand *exec) {
|
||||
if (exec == NULL)
|
||||
if (!exec)
|
||||
return 0;
|
||||
|
||||
if (access(exec->path, X_OK) < 0)
|
||||
|
||||
@@ -416,7 +416,7 @@ static int acquire_time_data(sd_bus *bus, struct unit_times **out) {
|
||||
continue;
|
||||
|
||||
t->name = strdup(u.id);
|
||||
if (t->name == NULL) {
|
||||
if (!t->name) {
|
||||
r = log_oom();
|
||||
goto fail;
|
||||
}
|
||||
@@ -820,7 +820,7 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha
|
||||
assert(deps);
|
||||
|
||||
path = unit_dbus_path_from_name(name);
|
||||
if (path == NULL)
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
return bus_get_unit_property_strv(bus, path, "After", deps);
|
||||
@@ -878,7 +878,7 @@ static int list_dependencies_one(sd_bus *bus, const char *name, unsigned int lev
|
||||
}
|
||||
}
|
||||
|
||||
if (service_longest == 0 )
|
||||
if (service_longest == 0)
|
||||
return r;
|
||||
|
||||
STRV_FOREACH(c, deps) {
|
||||
@@ -937,7 +937,7 @@ static int list_dependencies(sd_bus *bus, const char *name) {
|
||||
assert(bus);
|
||||
|
||||
path = unit_dbus_path_from_name(name);
|
||||
if (path == NULL)
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
r = sd_bus_get_property(
|
||||
|
||||
@@ -73,7 +73,7 @@ int clock_set_hwclock(const struct tm *tm) {
|
||||
int clock_is_localtime(const char* adjtime_path) {
|
||||
_cleanup_fclose_ FILE *f;
|
||||
|
||||
if (adjtime_path == NULL)
|
||||
if (!adjtime_path)
|
||||
adjtime_path = "/etc/adjtime";
|
||||
|
||||
/*
|
||||
|
||||
@@ -40,7 +40,7 @@ int whitelisted_char_for_devnode(char c, const char *white) {
|
||||
int encode_devnode_name(const char *str, char *str_enc, size_t len) {
|
||||
size_t i, j;
|
||||
|
||||
if (str == NULL || str_enc == NULL)
|
||||
if (!str || !str_enc)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0, j = 0; str[i] != '\0'; i++) {
|
||||
|
||||
@@ -71,7 +71,7 @@ int ether_addr_from_string(const char *s, struct ether_addr *ret, size_t *offset
|
||||
if (s[pos] == '\0') \
|
||||
break; \
|
||||
hexoff = strchr(hex, s[pos]); \
|
||||
if (hexoff == NULL) \
|
||||
if (!hexoff) \
|
||||
break; \
|
||||
assert(hexoff >= hex); \
|
||||
x = hexoff - hex; \
|
||||
@@ -99,7 +99,7 @@ int ether_addr_from_string(const char *s, struct ether_addr *ret, size_t *offset
|
||||
sep = s[strspn(s, hex)];
|
||||
if (sep == '\n')
|
||||
return -EINVAL;
|
||||
if (strchr(":.-", sep) == NULL)
|
||||
if (!strchr(":.-", sep))
|
||||
return -EINVAL;
|
||||
|
||||
if (sep == '.') {
|
||||
|
||||
+2
-2
@@ -140,7 +140,7 @@ int write_string_file_ts(
|
||||
|
||||
return r;
|
||||
} else
|
||||
assert(ts == NULL);
|
||||
assert(!ts);
|
||||
|
||||
if (flags & WRITE_STRING_FILE_CREATE) {
|
||||
f = fopen(fn, "we");
|
||||
@@ -1191,7 +1191,7 @@ int tempfn_xxxxxx(const char *p, const char *extra, char **ret) {
|
||||
if (!filename_is_valid(fn))
|
||||
return -EINVAL;
|
||||
|
||||
if (extra == NULL)
|
||||
if (!extra)
|
||||
extra = "";
|
||||
|
||||
t = new(char, strlen(p) + 2 + strlen(extra) + 6 + 1);
|
||||
|
||||
@@ -96,7 +96,7 @@ static int get_line(JournalImporter *imp, char **line, size_t *size) {
|
||||
assert(imp->state == IMPORTER_STATE_LINE);
|
||||
assert(imp->offset <= imp->filled);
|
||||
assert(imp->filled <= imp->size);
|
||||
assert(imp->buf == NULL || imp->size > 0);
|
||||
assert(!imp->buf || imp->size > 0);
|
||||
assert(imp->fd >= 0);
|
||||
|
||||
for (;;) {
|
||||
@@ -159,8 +159,8 @@ static int fill_fixed_size(JournalImporter *imp, void **data, size_t size) {
|
||||
assert(size <= DATA_SIZE_MAX);
|
||||
assert(imp->offset <= imp->filled);
|
||||
assert(imp->filled <= imp->size);
|
||||
assert(imp->buf != NULL || imp->size == 0);
|
||||
assert(imp->buf == NULL || imp->size > 0);
|
||||
assert(imp->buf || imp->size == 0);
|
||||
assert(!imp->buf || imp->size > 0);
|
||||
assert(imp->fd >= 0);
|
||||
assert(data);
|
||||
|
||||
|
||||
@@ -538,7 +538,7 @@ bool paths_check_timestamp(const char* const* paths, usec_t *timestamp, bool upd
|
||||
|
||||
assert(timestamp);
|
||||
|
||||
if (paths == NULL)
|
||||
if (!paths)
|
||||
return false;
|
||||
|
||||
STRV_FOREACH(i, paths) {
|
||||
|
||||
@@ -893,7 +893,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
|
||||
if (last_space != NULL && timezone_is_valid(last_space + 1))
|
||||
tz = last_space + 1;
|
||||
|
||||
if (tz == NULL || endswith_no_case(t, " UTC"))
|
||||
if (!tz || endswith_no_case(t, " UTC"))
|
||||
return parse_timestamp_impl(t, usec, false);
|
||||
|
||||
shared = mmap(NULL, sizeof *shared, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);
|
||||
|
||||
@@ -201,7 +201,7 @@ static EFI_STATUS tpm1_measure_to_pcr_and_event_log(const EFI_TCG *tcg, UINT32 p
|
||||
|
||||
tcg_event = AllocateZeroPool(desc_len + sizeof(TCG_PCR_EVENT));
|
||||
|
||||
if (tcg_event == NULL)
|
||||
if (!tcg_event)
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
|
||||
tcg_event->EventSize = desc_len;
|
||||
@@ -255,7 +255,7 @@ static EFI_STATUS tpm2_measure_to_pcr_and_event_log(const EFI_TCG2 *tcg, UINT32
|
||||
|
||||
tcg_event = AllocateZeroPool(sizeof(*tcg_event) - sizeof(tcg_event->Event) + desc_len + 1);
|
||||
|
||||
if (tcg_event == NULL)
|
||||
if (!tcg_event)
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
|
||||
tcg_event->Size = sizeof(*tcg_event) - sizeof(tcg_event->Event) + desc_len + 1;
|
||||
|
||||
+1
-1
@@ -3854,7 +3854,7 @@ int exec_context_load_environment(Unit *unit, const ExecContext *c, char ***l) {
|
||||
p = strv_env_clean_with_callback(p, invalid_env, &info);
|
||||
}
|
||||
|
||||
if (r == NULL)
|
||||
if (!r)
|
||||
r = p;
|
||||
else {
|
||||
char **m;
|
||||
|
||||
+1
-1
@@ -1479,7 +1479,7 @@ static int become_shutdown(
|
||||
int r;
|
||||
|
||||
assert(shutdown_verb);
|
||||
assert(command_line[pos] == NULL);
|
||||
assert(!command_line[pos]);
|
||||
env_block = strv_copy(environ);
|
||||
|
||||
xsprintf(log_level, "%d", log_get_max_level());
|
||||
|
||||
@@ -559,7 +559,7 @@ static int compose_open_fds(pid_t pid, char **open_fds) {
|
||||
continue;
|
||||
|
||||
fdinfo = fdopen(fd, "re");
|
||||
if (fdinfo == NULL) {
|
||||
if (!fdinfo) {
|
||||
close(fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -335,7 +335,7 @@ static int find_source_vc(char **ret_path, unsigned *ret_idx) {
|
||||
int ret_fd, r, err = 0;
|
||||
|
||||
path = new(char, sizeof("/dev/tty63"));
|
||||
if (path == NULL)
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
for (i = 1; i <= 63; i++) {
|
||||
@@ -396,7 +396,7 @@ static int verify_source_vc(char **ret_path, const char *src_vc) {
|
||||
return log_error_errno(r, "Virtual console %s is not in K_XLATE or K_UNICODE: %m", src_vc);
|
||||
|
||||
path = strdup(src_vc);
|
||||
if (path == NULL)
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
*ret_path = path;
|
||||
|
||||
Reference in New Issue
Block a user