Skip to content

Commit 3069637

Browse files
joelagnelkees
authored andcommitted
pstore/ram: Do not treat empty buffers as valid
The ramoops backend currently calls persistent_ram_save_old() even if a buffer is empty. While this appears to work, it is does not seem like the right thing to do and could lead to future bugs so lets avoid that. It also prevents misleading prints in the logs which claim the buffer is valid. I got something like: found existing buffer, size 0, start 0 When I was expecting: no valid data in buffer (sig = ...) This bails out early (and reports with pr_debug()), since it's an acceptable state. Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> Co-developed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Kees Cook <keescook@chromium.org>
1 parent b05c950 commit 3069637

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

fs/pstore/ram_core.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,11 @@ static int persistent_ram_post_init(struct persistent_ram_zone *prz, u32 sig,
511511
sig ^= PERSISTENT_RAM_SIG;
512512

513513
if (prz->buffer->sig == sig) {
514+
if (buffer_size(prz) == 0) {
515+
pr_debug("found existing empty buffer\n");
516+
return 0;
517+
}
518+
514519
if (buffer_size(prz) > prz->buffer_size ||
515520
buffer_start(prz) > buffer_size(prz)) {
516521
pr_info("found existing invalid buffer, size %zu, start %zu\n",

0 commit comments

Comments
 (0)