• Kees Cook's avatar
    pstore/ram: Fix failure-path memory leak in ramoops_init · bac6f6cd
    Kees Cook authored
    As reported by nixiaoming, with some minor clarifications:
    
    1) memory leak in ramoops_register_dummy():
       dummy_data = kzalloc(sizeof(*dummy_data), GFP_KERNEL);
       but no kfree() if platform_device_register_data() fails.
    
    2) memory leak in ramoops_init():
       Missing platform_device_unregister(dummy) and kfree(dummy_data)
       if platform_driver_register(&ramoops_driver) fails.
    
    I've clarified the purpose of ramoops_register_dummy(), and added a
    common cleanup routine for all three failure paths to call.
    Reported-by: default avatarnixiaoming <nixiaoming@huawei.com>
    Cc: stable@vger.kernel.org
    Cc: Anton Vorontsov <anton@enomsg.org>
    Cc: Colin Cross <ccross@android.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Joel Fernandes <joelaf@google.com>
    Cc: Geliang Tang <geliangtang@gmail.com>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    bac6f6cd
ram.c 24.6 KB