systemd: Fix busctl crash on aarch64 when setting output table format

The enum used for column names is integer type while table_set_display() is parsing
arguments on size_t alignment which may result in assert in table_set_display() if
the size between types missmatch. This patch cast the enums to size_t.
It also fixes all other occurences for table_set_display() and
table_set_sort().
This commit is contained in:
Alin Popa
2020-02-16 02:09:26 +09:00
committed by Yu Watanabe
parent bec31cf5f0
commit ad5555b42e
8 changed files with 14 additions and 14 deletions
+6 -6
View File
@@ -112,8 +112,8 @@ static int display_user(int argc, char *argv[], void *userdata) {
(void) table_set_align_percent(table, table_get_cell(table, 0, 2), 100);
(void) table_set_align_percent(table, table_get_cell(table, 0, 3), 100);
(void) table_set_empty_string(table, "-");
(void) table_set_sort(table, 7, 2, (size_t) -1);
(void) table_set_display(table, 0, 1, 2, 3, 4, 5, 6, (size_t) -1);
(void) table_set_sort(table, (size_t) 7, (size_t) 2, (size_t) -1);
(void) table_set_display(table, (size_t) 0, (size_t) 1, (size_t) 2, (size_t) 3, (size_t) 4, (size_t) 5, (size_t) 6, (size_t) -1);
}
if (argc > 1) {
@@ -260,8 +260,8 @@ static int display_group(int argc, char *argv[], void *userdata) {
return log_oom();
(void) table_set_align_percent(table, table_get_cell(table, 0, 2), 100);
(void) table_set_sort(table, 3, 2, (size_t) -1);
(void) table_set_display(table, 0, 1, 2, (size_t) -1);
(void) table_set_sort(table, (size_t) 3, (size_t) 2, (size_t) -1);
(void) table_set_display(table, (size_t) 0, (size_t) 1, (size_t) 2, (size_t) -1);
}
if (argc > 1) {
@@ -400,7 +400,7 @@ static int display_memberships(int argc, char *argv[], void *userdata) {
if (!table)
return log_oom();
(void) table_set_sort(table, 0, 1, (size_t) -1);
(void) table_set_sort(table, (size_t) 0, (size_t) 1, (size_t) -1);
}
if (argc > 1) {
@@ -489,7 +489,7 @@ static int display_services(int argc, char *argv[], void *userdata) {
if (!t)
return log_oom();
(void) table_set_sort(t, 0, (size_t) -1);
(void) table_set_sort(t, (size_t) 0, (size_t) -1);
FOREACH_DIRENT(de, d, return -errno) {
_cleanup_free_ char *j = NULL, *no = NULL;