summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/namespace.c2
-rw-r--r--src/cryptsetup/cryptsetup-generator.c4
-rw-r--r--src/journal/journal-file.c8
-rw-r--r--src/libudev/libudev-list.c1
-rw-r--r--src/readahead/readahead-analyze.c4
-rw-r--r--src/shared/logs-show.c1
-rw-r--r--src/shared/utf8.c2
7 files changed, 14 insertions, 8 deletions
diff --git a/src/core/namespace.c b/src/core/namespace.c
index 4bef15fdf5..ce10c79074 100644
--- a/src/core/namespace.c
+++ b/src/core/namespace.c
@@ -312,6 +312,8 @@ int setup_namespace(
goto undo_mounts;
}
+ free(paths);
+
t = old_root_dir + sizeof(root_dir) - 1;
if (umount2(t, MNT_DETACH) < 0)
/* At this point it's too late to turn anything back,
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index c6bc65aecf..386714b4fd 100644
--- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c
@@ -374,8 +374,8 @@ int main(int argc, char *argv[]) {
if (startswith(p, "luks-"))
p += 5;
- name = strappend("luks-", *i);
- device = strappend("UUID=", *i);
+ name = strappend("luks-", p);
+ device = strappend("UUID=", p);
if (!name || !device) {
log_oom();
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index b840124c9f..718dc5d6ea 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -788,7 +788,7 @@ static int journal_file_append_data(
}
#endif
- if (!compressed)
+ if (!compressed && size > 0)
memcpy(o->data.payload, data, size);
r = journal_file_link_data(f, o, p, hash);
@@ -1057,7 +1057,8 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st
ts->monotonic < le64toh(f->header->tail_entry_monotonic))
return -EINVAL;
- items = alloca(sizeof(EntryItem) * n_iovec);
+ /* alloca() can't take 0, hence let's allocate at least one */
+ items = alloca(sizeof(EntryItem) * MAX(1, n_iovec));
for (i = 0; i < n_iovec; i++) {
uint64_t p;
@@ -2336,7 +2337,8 @@ int journal_directory_vacuum(const char *directory, uint64_t max_use, uint64_t m
n_list ++;
}
- qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare);
+ if (n_list > 0)
+ qsort(list, n_list, sizeof(struct vacuum_info), vacuum_compare);
for(i = 0; i < n_list; i++) {
struct statvfs ss;
diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c
index aec334bcfc..5d09b5d2d9 100644
--- a/src/libudev/libudev-list.c
+++ b/src/libudev/libudev-list.c
@@ -186,6 +186,7 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *
if (list->entries == NULL) {
free(entry->name);
free(entry->value);
+ free(entry);
return NULL;
}
list->entries_max += add;
diff --git a/src/readahead/readahead-analyze.c b/src/readahead/readahead-analyze.c
index 53892b0cf8..11b2b2dc11 100644
--- a/src/readahead/readahead-analyze.c
+++ b/src/readahead/readahead-analyze.c
@@ -135,11 +135,11 @@ int main_analyze(const char *pack_path) {
printf("\nHOST: %s"
"TYPE: %c\n"
"MISSING: %d\n"
- "TOTAL: %ld\n",
+ "TOTAL: %llu\n",
line,
a,
missing,
- tsize);
+ (unsigned long long) tsize);
return EXIT_SUCCESS;
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index b6e6a85819..60eb896ade 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -273,6 +273,7 @@ finish:
free(message);
free(monotonic);
free(realtime);
+ free(priority);
return r;
}
diff --git a/src/shared/utf8.c b/src/shared/utf8.c
index a6f5b3f9e5..ea7483f50f 100644
--- a/src/shared/utf8.c
+++ b/src/shared/utf8.c
@@ -275,7 +275,7 @@ char *ascii_filter(const char *str) {
if (!r)
return NULL;
- for (s = r, d = r; *s; s++)
+ for (s = str, d = r; *s; s++)
if ((unsigned char) *s < 128)
*(d++) = *s;