mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 19:21:53 +03:00
commit
cb8770ed21
12
coccinelle/bool-cast.cocci
Normal file
12
coccinelle/bool-cast.cocci
Normal file
@ -0,0 +1,12 @@
|
||||
@@
|
||||
bool b;
|
||||
expression y;
|
||||
@@
|
||||
- b = !!(y);
|
||||
+ b = y;
|
||||
@@
|
||||
bool b;
|
||||
expression y;
|
||||
@@
|
||||
- b = !!y;
|
||||
+ b = y;
|
@ -11,11 +11,17 @@ case "$1" in
|
||||
;;
|
||||
esac
|
||||
|
||||
if ! parallel -h >/dev/null; then
|
||||
echo 'Please install GNU parallel (package "parallel")'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for SCRIPT in ${@-$top/coccinelle/*.cocci} ; do
|
||||
echo "--x-- Processing $SCRIPT --x--"
|
||||
TMPFILE=`mktemp`
|
||||
echo "+ spatch --sp-file $SCRIPT $args ..."
|
||||
spatch --sp-file $SCRIPT $args $files 2>"$TMPFILE" || cat "$TMPFILE"
|
||||
rm "$TMPFILE"
|
||||
parallel --halt now,fail=1 --keep-order --noswap --max-args=20 \
|
||||
spatch --sp-file $SCRIPT $args ::: $files \
|
||||
2>"$TMPFILE" || cat "$TMPFILE"
|
||||
echo -e "--x-- Processed $SCRIPT --x--\n"
|
||||
done
|
||||
|
@ -1833,7 +1833,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
arg_man = !!r;
|
||||
arg_man = r;
|
||||
} else
|
||||
arg_man = true;
|
||||
|
||||
@ -1847,7 +1847,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
arg_generators = !!r;
|
||||
arg_generators = r;
|
||||
} else
|
||||
arg_generators = true;
|
||||
|
||||
|
@ -500,7 +500,7 @@ int btrfs_subvol_get_info_fd(int fd, uint64_t subvol_id, BtrfsSubvolInfo *ret) {
|
||||
(usec_t) le32toh(ri->otime.nsec) / NSEC_PER_USEC;
|
||||
|
||||
ret->subvol_id = subvol_id;
|
||||
ret->read_only = !!(le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY);
|
||||
ret->read_only = le64toh(ri->flags) & BTRFS_ROOT_SUBVOL_RDONLY;
|
||||
|
||||
assert_cc(sizeof(ri->uuid) == sizeof(ret->uuid));
|
||||
memcpy(&ret->uuid, ri->uuid, sizeof(ret->uuid));
|
||||
|
@ -572,7 +572,7 @@ int table_add_many_internal(Table *t, TableDataType first_type, ...) {
|
||||
break;
|
||||
|
||||
case TABLE_BOOLEAN:
|
||||
buffer.b = !!va_arg(ap, int);
|
||||
buffer.b = va_arg(ap, int);
|
||||
data = &buffer.b;
|
||||
break;
|
||||
|
||||
|
@ -662,7 +662,7 @@ int parse_permille_unbounded(const char *p) {
|
||||
r = safe_atoi(n, &v);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (v > ((INT_MAX - q) / 10))
|
||||
if (v > (INT_MAX - q) / 10)
|
||||
return -ERANGE;
|
||||
|
||||
v = v * 10 + q;
|
||||
|
@ -81,7 +81,7 @@ int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata) {
|
||||
if (name)
|
||||
found = streq(name, verbs[i].verb);
|
||||
else
|
||||
found = !!(verbs[i].flags & VERB_DEFAULT);
|
||||
found = verbs[i].flags & VERB_DEFAULT;
|
||||
|
||||
if (found) {
|
||||
verb = &verbs[i];
|
||||
|
@ -56,7 +56,7 @@ static int detect_vm_cpuid(void) {
|
||||
if (__get_cpuid(1, &eax, &ebx, &ecx, &edx) == 0)
|
||||
return VIRTUALIZATION_NONE;
|
||||
|
||||
hypervisor = !!(ecx & 0x80000000U);
|
||||
hypervisor = ecx & 0x80000000U;
|
||||
|
||||
if (hypervisor) {
|
||||
union {
|
||||
|
@ -1972,7 +1972,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_expect_reply = !!r;
|
||||
arg_expect_reply = r;
|
||||
break;
|
||||
|
||||
case ARG_AUTO_START:
|
||||
@ -1982,7 +1982,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_auto_start = !!r;
|
||||
arg_auto_start = r;
|
||||
break;
|
||||
|
||||
case ARG_ALLOW_INTERACTIVE_AUTHORIZATION:
|
||||
@ -1992,7 +1992,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_allow_interactive_authorization = !!r;
|
||||
arg_allow_interactive_authorization = r;
|
||||
break;
|
||||
|
||||
case ARG_TIMEOUT:
|
||||
@ -2011,7 +2011,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_augment_creds = !!r;
|
||||
arg_augment_creds = r;
|
||||
break;
|
||||
|
||||
case ARG_WATCH_BIND:
|
||||
@ -2021,7 +2021,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return r;
|
||||
}
|
||||
|
||||
arg_watch_bind = !!r;
|
||||
arg_watch_bind = r;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
|
@ -563,7 +563,7 @@ static int property_get_bind_paths(
|
||||
assert(property);
|
||||
assert(reply);
|
||||
|
||||
ro = !!strstr(property, "ReadOnly");
|
||||
ro = strstr(property, "ReadOnly");
|
||||
|
||||
r = sd_bus_message_open_container(reply, 'a', "(ssbt)");
|
||||
if (r < 0)
|
||||
|
@ -322,7 +322,7 @@ static int append_tmpfs_mounts(MountEntry **p, const TemporaryFileSystem *tmpfs,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
ro = !!(flags & MS_RDONLY);
|
||||
ro = flags & MS_RDONLY;
|
||||
if (ro)
|
||||
flags ^= MS_RDONLY;
|
||||
}
|
||||
|
@ -3215,7 +3215,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
||||
* The PID file might actually be created by a START_POST
|
||||
* script. In that case don't worry if the loading fails. */
|
||||
|
||||
has_start_post = !!s->exec_command[SERVICE_EXEC_START_POST];
|
||||
has_start_post = s->exec_command[SERVICE_EXEC_START_POST];
|
||||
r = service_load_pid_file(s, !has_start_post);
|
||||
if (!has_start_post && r < 0) {
|
||||
r = service_demand_pid_file(s);
|
||||
|
@ -302,7 +302,7 @@ int main(int argc, char *argv[]) {
|
||||
(void) cg_get_root_path(&cgroup);
|
||||
in_container = detect_container() > 0;
|
||||
|
||||
use_watchdog = !!getenv("WATCHDOG_USEC");
|
||||
use_watchdog = getenv("WATCHDOG_USEC");
|
||||
watchdog_device = getenv("WATCHDOG_DEVICE");
|
||||
if (watchdog_device) {
|
||||
r = watchdog_set_device(watchdog_device);
|
||||
|
@ -378,7 +378,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s->level_prefix = !!r;
|
||||
s->level_prefix = r;
|
||||
s->state = STDOUT_STREAM_FORWARD_TO_SYSLOG;
|
||||
return 0;
|
||||
|
||||
@ -389,7 +389,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s->forward_to_syslog = !!r;
|
||||
s->forward_to_syslog = r;
|
||||
s->state = STDOUT_STREAM_FORWARD_TO_KMSG;
|
||||
return 0;
|
||||
|
||||
@ -400,7 +400,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s->forward_to_kmsg = !!r;
|
||||
s->forward_to_kmsg = r;
|
||||
s->state = STDOUT_STREAM_FORWARD_TO_CONSOLE;
|
||||
return 0;
|
||||
|
||||
@ -411,7 +411,7 @@ static int stdout_stream_line(StdoutStream *s, char *p, LineBreak line_break) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
s->forward_to_console = !!r;
|
||||
s->forward_to_console = r;
|
||||
s->state = STDOUT_STREAM_RUNNING;
|
||||
|
||||
/* Try to save the stream, so that journald can be restarted and we can recover */
|
||||
|
@ -242,9 +242,9 @@ static int property_get_preparing(
|
||||
assert(m);
|
||||
|
||||
if (streq(property, "PreparingForShutdown"))
|
||||
b = !!(m->action_what & INHIBIT_SHUTDOWN);
|
||||
b = m->action_what & INHIBIT_SHUTDOWN;
|
||||
else
|
||||
b = !!(m->action_what & INHIBIT_SLEEP);
|
||||
b = m->action_what & INHIBIT_SLEEP;
|
||||
|
||||
return sd_bus_message_append(reply, "b", b);
|
||||
}
|
||||
|
@ -406,7 +406,7 @@ int dhcp6_request_address(Link *link, int ir) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
else
|
||||
running = !!r;
|
||||
running = r;
|
||||
|
||||
if (running) {
|
||||
r = sd_dhcp6_client_get_information_request(link->dhcp6_client, &inf_req);
|
||||
|
@ -1090,9 +1090,9 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, unsigne
|
||||
return r;
|
||||
|
||||
if (flags & BUS_MAP_BOOLEAN_AS_BOOL)
|
||||
* (bool*) userdata = !!b;
|
||||
*(bool*) userdata = b;
|
||||
else
|
||||
* (int*) userdata = b;
|
||||
*(int*) userdata = b;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1403,7 +1403,7 @@ int bus_property_set_bool(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
*(bool *) userdata = !!b;
|
||||
*(bool*) userdata = b;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ static int condition_test_kernel_command_line(Condition *c) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
equal = !!strchr(c->parameter, '=');
|
||||
equal = strchr(c->parameter, '=');
|
||||
|
||||
for (p = line;;) {
|
||||
_cleanup_free_ char *word = NULL;
|
||||
|
@ -632,7 +632,7 @@ int config_parse_bool(const char* unit,
|
||||
return fatal ? -ENOEXEC : 0;
|
||||
}
|
||||
|
||||
*b = !!k;
|
||||
*b = k;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -57,9 +57,30 @@ static void test_memdup_multiply_and_greedy_realloc(void) {
|
||||
assert_se(p[i] == 0);
|
||||
}
|
||||
|
||||
static void test_bool_assign(void) {
|
||||
bool b, c, *cp = &c, d, e, f, g, h;
|
||||
|
||||
b = 123;
|
||||
*cp = -11;
|
||||
d = 0xF & 0xFF;
|
||||
e = b & d;
|
||||
f = 0x0;
|
||||
g = cp; /* cast from pointer */
|
||||
h = NULL; /* cast from pointer */
|
||||
|
||||
assert(b);
|
||||
assert(c);
|
||||
assert(d);
|
||||
assert(e);
|
||||
assert(!f);
|
||||
assert(g);
|
||||
assert(!h);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
test_alloca();
|
||||
test_memdup_multiply_and_greedy_realloc();
|
||||
test_bool_assign();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -477,7 +477,7 @@ static int map_ntp_message(sd_bus *bus, const char *member, sd_bus_message *m, s
|
||||
|
||||
memcpy(p->reference.str, d, sz);
|
||||
|
||||
p->spike = !!b;
|
||||
p->spike = b;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user