From a3288d27e3c5695388455a7b54093193f5d074fc Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 27 Dec 2012 08:53:40 +0000 Subject: [PATCH] scst: Avoid that setting trace_level triggers an infinite loop (partial merge of trunk r4137) Avoid that e.g. the following command triggers an infinite loop echo "value 0x9c" > /sys/kernel/scst_tgt/trace_level Reported-by: Jin Cheng git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/2.2.x@4665 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_sysfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scst/src/scst_sysfs.c b/scst/src/scst_sysfs.c index 6404f128f..b776d05f5 100644 --- a/scst/src/scst_sysfs.c +++ b/scst/src/scst_sysfs.c @@ -147,7 +147,7 @@ static int scst_write_trace(const char *buf, size_t length, unsigned long *log_level, unsigned long default_level, const char *name, const struct scst_trace_log *tbl) { - int res = length; + int res; int action; unsigned long level = 0, oldlevel; char *buffer, *p, *e; @@ -286,6 +286,8 @@ static int scst_write_trace(const char *buf, size_t length, PRINT_INFO("Changed trace level for \"%s\": old 0x%08lx, new 0x%08lx", name, oldlevel, *log_level); + res = length; + out_free: kfree(buffer); out: