lkml.org 
[lkml]   [2015]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] zram: don't copy invalid compression algorithms
Date
Validate the new compression algorithm before copying it into the zram
'compressor' field, keeping the old one if it's invalid.

The error path code is also slightly refactored.

Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
drivers/block/zram/zram_drv.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 9c01f5bfa33f..33551ec9e7f5 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -367,10 +367,15 @@ static ssize_t comp_algorithm_store(struct device *dev,

down_write(&zram->init_lock);
if (init_done(zram)) {
- up_write(&zram->init_lock);
pr_info("Can't change algorithm for initialized device\n");
- return -EBUSY;
+ len = -EBUSY;
+ goto out;
+ }
+ if (!zcomp_available_algorithm(buf)) {
+ len = -EINVAL;
+ goto out;
}
+
strlcpy(zram->compressor, buf, sizeof(zram->compressor));

/* ignore trailing newline */
@@ -378,9 +383,7 @@ static ssize_t comp_algorithm_store(struct device *dev,
if (sz > 0 && zram->compressor[sz - 1] == '\n')
zram->compressor[sz - 1] = 0x00;

- if (!zcomp_available_algorithm(zram->compressor))
- len = -EINVAL;
-
+out:
up_write(&zram->init_lock);
return len;
}

\
 
 \ /
  Last update: 2015-09-07 23:01    [W:0.109 / U:0.644 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site