瀏覽代碼

[S390] call home: fix local buffer usage in proc handler

Fix the size of the local buffer and use snprintf to prevent
further miscalculations. Also fix the usage of bitwise vs logic
operations.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Sebastian Ott 15 年之前
父節點
當前提交
3f0b3c33ee
共有 1 個文件被更改,包括 3 次插入4 次删除
  1. 3 4
      drivers/s390/char/sclp_async.c

+ 3 - 4
drivers/s390/char/sclp_async.c

@@ -68,15 +68,14 @@ static int proc_handler_callhome(struct ctl_table *ctl, int write,
 {
 {
 	unsigned long val;
 	unsigned long val;
 	int len, rc;
 	int len, rc;
-	char buf[2];
+	char buf[3];
 
 
-	if (!*count | (*ppos && !write)) {
+	if (!*count || (*ppos && !write)) {
 		*count = 0;
 		*count = 0;
 		return 0;
 		return 0;
 	}
 	}
 	if (!write) {
 	if (!write) {
-		len =  sprintf(buf, "%d\n", callhome_enabled);
-		buf[len] = '\0';
+		len = snprintf(buf, sizeof(buf), "%d\n", callhome_enabled);
 		rc = copy_to_user(buffer, buf, sizeof(buf));
 		rc = copy_to_user(buffer, buf, sizeof(buf));
 		if (rc != 0)
 		if (rc != 0)
 			return -EFAULT;
 			return -EFAULT;