mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	Turns out auditd depends on libev. Lets have that in packages.git. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
		
			
				
	
	
		
			134 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From c39a071e7c021f6ff3554aca2758e97b47a9777c Mon Sep 17 00:00:00 2001
 | |
| From: Steve Grubb <sgrubb@redhat.com>
 | |
| Date: Tue, 26 Feb 2019 18:33:33 -0500
 | |
| Subject: [PATCH] Add substitue functions for strndupa & rawmemchr
 | |
| 
 | |
| (cherry picked from commit d579a08bb1cde71f939c13ac6b2261052ae9f77e)
 | |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 | |
| ---
 | |
|  auparse/auparse.c   | 12 +++++++++++-
 | |
|  auparse/interpret.c |  9 ++++++++-
 | |
|  configure.ac        | 14 +++++++++++++-
 | |
|  src/ausearch-lol.c  | 12 +++++++++++-
 | |
|  4 files changed, 43 insertions(+), 4 deletions(-)
 | |
| 
 | |
| diff --git a/auparse/auparse.c b/auparse/auparse.c
 | |
| index 650db02..2e1c737 100644
 | |
| --- a/auparse/auparse.c
 | |
| +++ b/auparse/auparse.c
 | |
| @@ -1,5 +1,5 @@
 | |
|  /* auparse.c --
 | |
| - * Copyright 2006-08,2012-17 Red Hat Inc., Durham, North Carolina.
 | |
| + * Copyright 2006-08,2012-19 Red Hat Inc., Durham, North Carolina.
 | |
|   * All Rights Reserved.
 | |
|   *
 | |
|   * This library is free software; you can redistribute it and/or
 | |
| @@ -1118,6 +1118,16 @@ static int str2event(char *s, au_event_t *e)
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| +#ifndef HAVE_STRNDUPA
 | |
| +static inline char *strndupa(const char *old, size_t n)
 | |
| +{
 | |
| +	size_t len = strnlen(old, n);
 | |
| +	char *tmp = alloca(len + 1);
 | |
| +	tmp[len] = 0;
 | |
| +	return memcpy(tmp, old, len);
 | |
| +}
 | |
| +#endif
 | |
| +
 | |
|  /* Returns 0 on success and 1 on error */
 | |
|  static int extract_timestamp(const char *b, au_event_t *e)
 | |
|  {
 | |
| diff --git a/auparse/interpret.c b/auparse/interpret.c
 | |
| index 51c4a5e..67b7b77 100644
 | |
| --- a/auparse/interpret.c
 | |
| +++ b/auparse/interpret.c
 | |
| @@ -853,6 +853,13 @@ err_out:
 | |
|  		return print_escaped(id->val);
 | |
|  }
 | |
|  
 | |
| +// rawmemchr is faster. Let's use it if we have it.
 | |
| +#ifdef HAVE_RAWMEMCHR
 | |
| +#define STRCHR rawmemchr
 | |
| +#else
 | |
| +#define STRCHR strchr
 | |
| +#endif
 | |
| +
 | |
|  static const char *print_proctitle(const char *val)
 | |
|  {
 | |
|  	char *out = (char *)print_escaped(val);
 | |
| @@ -863,7 +870,7 @@ static const char *print_proctitle(const char *val)
 | |
|  		// Proctitle has arguments separated by NUL bytes
 | |
|  		// We need to write over the NUL bytes with a space
 | |
|  		// so that we can see the arguments
 | |
| -		while ((ptr  = rawmemchr(ptr, '\0'))) {
 | |
| +		while ((ptr  = STRCHR(ptr, '\0'))) {
 | |
|  			if (ptr >= end)
 | |
|  				break;
 | |
|  			*ptr = ' ';
 | |
| diff --git a/configure.ac b/configure.ac
 | |
| index 6e345f1..6f3007e 100644
 | |
| --- a/configure.ac
 | |
| +++ b/configure.ac
 | |
| @@ -1,7 +1,7 @@
 | |
|  dnl
 | |
|  define([AC_INIT_NOTICE],
 | |
|  [### Generated automatically using autoconf version] AC_ACVERSION [
 | |
| -### Copyright 2005-18 Steve Grubb <sgrubb@redhat.com>
 | |
| +### Copyright 2005-19 Steve Grubb <sgrubb@redhat.com>
 | |
|  ###
 | |
|  ### Permission is hereby granted, free of charge, to any person obtaining a
 | |
|  ### copy of this software and associated documentation files (the "Software"),
 | |
| @@ -72,6 +72,18 @@ dnl; posix_fallocate is used in audisp-remote
 | |
|  AC_CHECK_FUNCS([posix_fallocate])
 | |
|  dnl; signalfd is needed for libev
 | |
|  AC_CHECK_FUNC([signalfd], [], [ AC_MSG_ERROR([The signalfd system call is necessary for auditd]) ])
 | |
| +dnl; check if rawmemchr is available
 | |
| +AC_CHECK_FUNCS([rawmemchr])
 | |
| +dnl; check if strndupa is available
 | |
| +AC_LINK_IFELSE(
 | |
| +  [AC_LANG_SOURCE(
 | |
| +    [[
 | |
| +      #define _GNU_SOURCE
 | |
| +      #include <string.h>
 | |
| +      int main() { (void) strndupa("test", 10); return 0; }]])],
 | |
| + [AC_DEFINE(HAVE_STRNDUPA, 1, [Let us know if we have it or not])],
 | |
| + []
 | |
| +)
 | |
|  
 | |
|  ALLWARNS=""
 | |
|  ALLDEBUG="-g"
 | |
| diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c
 | |
| index 5d17a72..758c33e 100644
 | |
| --- a/src/ausearch-lol.c
 | |
| +++ b/src/ausearch-lol.c
 | |
| @@ -1,6 +1,6 @@
 | |
|  /*
 | |
|  * ausearch-lol.c - linked list of linked lists library
 | |
| -* Copyright (c) 2008,2010,2014,2016 Red Hat Inc., Durham, North Carolina.
 | |
| +* Copyright (c) 2008,2010,2014,2016,2019 Red Hat Inc., Durham, North Carolina.
 | |
|  * All Rights Reserved. 
 | |
|  *
 | |
|  * This software may be freely redistributed and/or modified under the
 | |
| @@ -152,6 +152,16 @@ static int compare_event_time(event *e1, event *e2)
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| +#ifndef HAVE_STRNDUPA
 | |
| +static inline char *strndupa(const char *old, size_t n)
 | |
| +{
 | |
| +	size_t len = strnlen(old, n);
 | |
| +	char *tmp = alloca(len + 1);
 | |
| +	tmp[len] = 0;
 | |
| +	return memcpy(tmp, old, len);
 | |
| +}
 | |
| +#endif
 | |
| +
 | |
|  /*
 | |
|   * This function will look at the line and pick out pieces of it.
 | |
|   */
 | |
| -- 
 | |
| 2.21.0
 | |
| 
 |