lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1403896261-15464-1-git-send-email-elder@linaro.org>
Date:	Fri, 27 Jun 2014 14:11:01 -0500
From:	Alex Elder <elder@...aro.org>
To:	akpm@...ux-foundation.org
Cc:	pmladek@...e.cz, jack@...e.cz, joe@...ches.com,
	john.stultz@...aro.org, linux-kernel@...r.kernel.org
Subject: [PATCH] printk: tweak do_syslog() to match comments

In do_syslog() there's a path used by kmsg_poll() and kmsg_read()
that only needs to know whether there's any data available to read
(and not its size).  These callers only check for non-zero return.
As a shortcut, do_syslog() returns the difference between what
has been logged and what has been "seen."

The comments say that the "count of records" should be returned but
it's not.  Instead it returns (log_next_idx - syslog_idx), which is
a difference between buffer offsets--and the result could be negative.

The behavior is the same (it'll be zero or not in the same cases),
but the count of records is more meaningful and it matches what the
comments say.  So change the code to return that.

Signed-off-by: Alex Elder <elder@...aro.org>
---
This patch is also available here:
    http://git.linaro.org/landing-teams/working/broadcom/kernel.git
    Branch review/do_syslog_tweak

 kernel/printk/printk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index ea2d5f6..f4a92e8 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1310,7 +1310,7 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
 			 * for pending data, not the size; return the count of
 			 * records, not the length.
 			 */
-			error = log_next_idx - syslog_idx;
+			error = log_next_seq - syslog_seq;
 		} else {
 			u64 seq = syslog_seq;
 			u32 idx = syslog_idx;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ