lkml.org 
[lkml]   [2019]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.20 045/117] pstore/ram: Do not treat empty buffers as valid
    Date
    From: "Joel Fernandes (Google)" <joel@joelfernandes.org>

    [ Upstream commit 30696378f68a9e3dad6bfe55938b112e72af00c2 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/pstore/ram_core.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c
    index 12e21f789194..79f0e183f135 100644
    --- a/fs/pstore/ram_core.c
    +++ b/fs/pstore/ram_core.c
    @@ -497,6 +497,11 @@ static int persistent_ram_post_init(struct persistent_ram_zone *prz, u32 sig,
    sig ^= PERSISTENT_RAM_SIG;

    if (prz->buffer->sig == sig) {
    + if (buffer_size(prz) == 0) {
    + pr_debug("found existing empty buffer\n");
    + return 0;
    + }
    +
    if (buffer_size(prz) > prz->buffer_size ||
    buffer_start(prz) > buffer_size(prz))
    pr_info("found existing invalid buffer, size %zu, start %zu\n",
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-01-08 21:08    [W:4.045 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site