forked from mirrors/linux
		
	Patch fixes drawbacks in heck_syslog_permissions() noticed by AKPM: "from_file handling makes me cry. That's not a boolean - it's an enumerated value with two values currently defined. But the code in check_syslog_permissions() treats it as a boolean and also hardwires the knowledge that SYSLOG_FROM_PROC == 1 (or == `true`). And the name is wrong: it should be called from_proc to match SYSLOG_FROM_PROC." Signed-off-by: Vasily Averin <vvs@virtuozzo.com> Cc: Kees Cook <keescook@chromium.org> Cc: Josh Boyer <jwboyer@redhat.com> Cc: Eric Paris <eparis@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*  Syslog internals
 | 
						|
 *
 | 
						|
 *  Copyright 2010 Canonical, Ltd.
 | 
						|
 *  Author: Kees Cook <kees.cook@canonical.com>
 | 
						|
 *
 | 
						|
 *  This program is free software; you can redistribute it and/or modify
 | 
						|
 *  it under the terms of the GNU General Public License as published by
 | 
						|
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
						|
 *  any later version.
 | 
						|
 *
 | 
						|
 *  This program is distributed in the hope that it will be useful,
 | 
						|
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
 *  GNU General Public License for more details.
 | 
						|
 *
 | 
						|
 *  You should have received a copy of the GNU General Public License
 | 
						|
 *  along with this program; see the file COPYING.  If not, write to
 | 
						|
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _LINUX_SYSLOG_H
 | 
						|
#define _LINUX_SYSLOG_H
 | 
						|
 | 
						|
/* Close the log.  Currently a NOP. */
 | 
						|
#define SYSLOG_ACTION_CLOSE          0
 | 
						|
/* Open the log. Currently a NOP. */
 | 
						|
#define SYSLOG_ACTION_OPEN           1
 | 
						|
/* Read from the log. */
 | 
						|
#define SYSLOG_ACTION_READ           2
 | 
						|
/* Read all messages remaining in the ring buffer. */
 | 
						|
#define SYSLOG_ACTION_READ_ALL       3
 | 
						|
/* Read and clear all messages remaining in the ring buffer */
 | 
						|
#define SYSLOG_ACTION_READ_CLEAR     4
 | 
						|
/* Clear ring buffer. */
 | 
						|
#define SYSLOG_ACTION_CLEAR          5
 | 
						|
/* Disable printk's to console */
 | 
						|
#define SYSLOG_ACTION_CONSOLE_OFF    6
 | 
						|
/* Enable printk's to console */
 | 
						|
#define SYSLOG_ACTION_CONSOLE_ON     7
 | 
						|
/* Set level of messages printed to console */
 | 
						|
#define SYSLOG_ACTION_CONSOLE_LEVEL  8
 | 
						|
/* Return number of unread characters in the log buffer */
 | 
						|
#define SYSLOG_ACTION_SIZE_UNREAD    9
 | 
						|
/* Return size of the log buffer */
 | 
						|
#define SYSLOG_ACTION_SIZE_BUFFER   10
 | 
						|
 | 
						|
#define SYSLOG_FROM_READER           0
 | 
						|
#define SYSLOG_FROM_PROC             1
 | 
						|
 | 
						|
int do_syslog(int type, char __user *buf, int count, int source);
 | 
						|
 | 
						|
#ifdef CONFIG_PRINTK
 | 
						|
int check_syslog_permissions(int type, int source);
 | 
						|
#else
 | 
						|
static inline int check_syslog_permissions(int type, int source)
 | 
						|
{
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* _LINUX_SYSLOG_H */
 |