Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package aide for openSUSE:Factory checked in at 2022-03-29 18:16:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/aide (Old) and /work/SRC/openSUSE:Factory/.aide.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aide" Tue Mar 29 18:16:09 2022 rev:35 rq:965618 version:0.17.4 Changes: -------- --- /work/SRC/openSUSE:Factory/aide/aide.changes 2021-11-04 16:10:44.289087783 +0100 +++ /work/SRC/openSUSE:Factory/.aide.new.1900/aide.changes 2022-03-29 18:16:14.363182398 +0200 @@ -1,0 +2,6 @@ +Tue Mar 29 09:19:54 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com> + +- Update to 0.17.4: + * fix CVE-2021-45417: precalculate buffer size in base64 functions (bsc#1194735) + +------------------------------------------------------------------- Old: ---- aide-0.17.3.tar.gz aide-0.17.3.tar.gz.asc New: ---- aide-0.17.4.tar.gz aide-0.17.4.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ aide.spec ++++++ --- /var/tmp/diff_new_pack.y1a7Rv/_old 2022-03-29 18:16:15.223183272 +0200 +++ /var/tmp/diff_new_pack.y1a7Rv/_new 2022-03-29 18:16:15.231183280 +0200 @@ -1,7 +1,7 @@ # # spec file for package aide # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: aide -Version: 0.17.3 +Version: 0.17.4 Release: 0 Summary: Advanced Intrusion Detection Environment License: GPL-2.0-or-later ++++++ aide-0.17.3.tar.gz -> aide-0.17.4.tar.gz ++++++ ++++ 10566 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/ChangeLog new/aide-0.17.4/ChangeLog --- old/aide-0.17.3/ChangeLog 2021-02-10 22:21:41.000000000 +0100 +++ new/aide-0.17.4/ChangeLog 2022-01-19 21:11:36.000000000 +0100 @@ -1,3 +1,8 @@ +2022-01-19 Hannes von Haugwitz <han...@vonhaugwitz.com> + * Precalculate buffer size in base64 functions (CVE-2021-45417), + thanks to David Bouman for reporting this issue + * Release aide 0.17.4 + 2021-02-10 Hannes von Haugwitz <han...@vonhaugwitz.com> * Release aide 0.17.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/INSTALL new/aide-0.17.4/INSTALL --- old/aide-0.17.3/INSTALL 2021-02-10 22:27:43.000000000 +0100 +++ new/aide-0.17.4/INSTALL 2022-01-19 21:13:04.000000000 +0100 @@ -1,8 +1,8 @@ Installation Instructions ************************* - Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software -Foundation, Inc. + Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free +Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -225,7 +225,7 @@ and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX 'make' updates targets which have the same time stamps as their + HP-UX 'make' updates targets which have the same timestamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/NEWS new/aide-0.17.4/NEWS --- old/aide-0.17.3/NEWS 2021-02-10 22:21:41.000000000 +0100 +++ new/aide-0.17.4/NEWS 2022-01-19 21:11:36.000000000 +0100 @@ -1,3 +1,7 @@ +Version 0.17.4 (2022-01-19) + * SECURITY FIX + - Precalculate buffer size in base64 functions (CVE-2021-45417) + Version 0.17.3 (2021-02-10) * Fix group usage in '--after' config line diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/README new/aide-0.17.4/README --- old/aide-0.17.3/README 2021-02-10 22:21:41.000000000 +0100 +++ new/aide-0.17.4/README 2022-01-19 21:11:36.000000000 +0100 @@ -1,7 +1,7 @@ AIDE - Advanced Intrusion Detection Environment ------------------------------------------------- - Version 0.17.3 + Version 0.17.4 This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/compile new/aide-0.17.4/compile --- old/aide-0.17.3/compile 2021-02-10 22:27:43.000000000 +0100 +++ new/aide-0.17.4/compile 2022-01-19 21:13:04.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/config.h.in new/aide-0.17.4/config.h.in --- old/aide-0.17.3/config.h.in 2021-02-10 22:27:42.000000000 +0100 +++ new/aide-0.17.4/config.h.in 2022-01-19 21:13:04.000000000 +0100 @@ -71,9 +71,6 @@ than `double'. */ #undef HAVE_LONG_DOUBLE_WIDER -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - /* mhash has whirlpool */ #undef HAVE_MHASH_WHIRLPOOL @@ -95,6 +92,9 @@ /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the <stdio.h> header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H @@ -233,7 +233,9 @@ /* The size of `unsigned short', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_SHORT -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* syslog priority */ @@ -297,11 +299,6 @@ `char[]'. */ #undef YYTEXT_POINTER -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/doc/aide.1 new/aide-0.17.4/doc/aide.1 --- old/aide-0.17.3/doc/aide.1 2021-02-10 22:21:41.000000000 +0100 +++ new/aide-0.17.4/doc/aide.1 2022-01-19 21:11:36.000000000 +0100 @@ -1,4 +1,4 @@ -.TH AIDE 1 "2021-02-10" "aide v0.17.3" "User Commands" +.TH AIDE 1 "2022-01-19" "aide v0.17.4" "User Commands" .SH NAME \fBaide\fP \- Advanced Intrusion Detection Environment .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/doc/aide.conf.5 new/aide-0.17.4/doc/aide.conf.5 --- old/aide-0.17.3/doc/aide.conf.5 2021-02-10 22:21:41.000000000 +0100 +++ new/aide-0.17.4/doc/aide.conf.5 2022-01-19 21:11:36.000000000 +0100 @@ -1,4 +1,4 @@ -.TH AIDE.CONF 5 "2021-02-10" "aide v0.17.3" "AIDE" +.TH AIDE.CONF 5 "2022-01-19" "aide v0.17.4" "AIDE" .SH NAME aide.conf - The configuration file for Advanced Intrusion Detection Environment diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/include/base64.h new/aide-0.17.4/include/base64.h --- old/aide-0.17.3/include/base64.h 2021-01-06 09:44:54.000000000 +0100 +++ new/aide-0.17.4/include/base64.h 2022-01-18 22:36:28.000000000 +0100 @@ -35,7 +35,6 @@ #include <assert.h> #include "types.h" -#define B64_BUF 16384 #define FAIL -1 #define SKIP -2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/missing new/aide-0.17.4/missing --- old/aide-0.17.3/missing 2021-02-10 22:27:43.000000000 +0100 +++ new/aide-0.17.4/missing 2022-01-19 21:13:04.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/src/base64.c new/aide-0.17.4/src/base64.c --- old/aide-0.17.3/src/base64.c 2021-02-10 22:01:14.000000000 +0100 +++ new/aide-0.17.4/src/base64.c 2022-01-19 21:02:55.000000000 +0100 @@ -85,11 +85,9 @@ }; /* Returns NULL on error */ -/* FIXME Possible buffer overflow on outputs larger than B64_BUF */ char* encode_base64(byte* src,size_t ssize) { char* outbuf; - char* retbuf; int pos; int i, l, left; unsigned long triple; @@ -100,7 +98,10 @@ log_msg(LOG_LEVEL_DEBUG,"encode base64: empty string"); return NULL; } - outbuf = (char *)checked_malloc(sizeof(char)*B64_BUF); + + /* length of encoded base64 string (padded) */ + size_t length = sizeof(char)* ((ssize + 2) / 3) * 4; + outbuf = (char *)checked_malloc(length + 1); /* Initialize working pointers */ inb = src; @@ -161,20 +162,14 @@ inb++; } - /* outbuf is not completely used so we use retbuf */ - retbuf=(char*)checked_malloc(sizeof(char)*(pos+1)); - memcpy(retbuf,outbuf,pos); - retbuf[pos]='\0'; - free(outbuf); + outbuf[pos]='\0'; - return retbuf; + return outbuf; } -/* FIXME Possible buffer overflow on outputs larger than B64_BUF */ byte* decode_base64(char* src,size_t ssize, size_t *ret_len) { byte* outbuf; - byte* retbuf; char* inb; int i; int l; @@ -188,10 +183,18 @@ return NULL; } + /* exit on unpadded input */ + if (ssize % 4) { + log_msg(LOG_LEVEL_WARNING, "decode_base64: '%s' has invalid length (missing padding characters?)", src); + return NULL; + } + + /* calculate length of decoded string, substract padding chars if any (ssize is >= 4) */ + size_t length = sizeof(byte) * ((ssize / 4) * 3)- (src[ssize-1] == '=') - (src[ssize-2] == '='); /* Initialize working pointers */ inb = src; - outbuf = (byte *)checked_malloc(sizeof(byte)*B64_BUF); + outbuf = (byte *)checked_malloc(length + 1); l = 0; triple = 0; @@ -242,15 +245,11 @@ inb++; } - retbuf=(byte*)checked_malloc(sizeof(byte)*(pos+1)); - memcpy(retbuf,outbuf,pos); - retbuf[pos]='\0'; - - free(outbuf); + outbuf[pos]='\0'; if (ret_len) *ret_len = pos; - return retbuf; + return outbuf; } size_t length_base64(char* src,size_t ssize) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/src/conf_yacc.c new/aide-0.17.4/src/conf_yacc.c --- old/aide-0.17.3/src/conf_yacc.c 2021-02-10 22:27:46.000000000 +0100 +++ new/aide-0.17.4/src/conf_yacc.c 2022-01-19 21:13:12.000000000 +0100 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.7.2. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 -/* Bison version. */ -#define YYBISON_VERSION "3.7.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -239,6 +239,18 @@ typedef short yytype_int16; #endif +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -336,17 +348,23 @@ /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -562,7 +580,7 @@ }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 105, 105, 106, 108, 112, 113, 118, 119, 120, @@ -604,17 +622,6 @@ } #endif -#ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 43, 45, 44, 61 -}; -#endif - #define YYPACT_NINF (-43) #define yypact_value_is_default(Yyn) \ @@ -625,8 +632,8 @@ #define yytable_value_is_error(Yyn) \ 0 - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ static const yytype_int8 yypact[] = { 37, -7, 4, 5, 5, 5, 5, -5, 8, 29, @@ -640,9 +647,9 @@ 58, -43 }; - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ static const yytype_int8 yydefact[] = { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -656,23 +663,23 @@ 0, 36 }; - /* YYPGOTO[NTERM-NUM]. */ +/* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -43, -43, -42, -43, -29, -6, -43, -4, -43, -43, -43, -43, -43, -43, -43, -43, -43 }; - /* YYDEFGOTO[NTERM-NUM]. */ +/* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 15, 16, 17, 53, 56, 18, 31, 32, 19, + 0, 15, 16, 17, 53, 56, 18, 31, 32, 19, 20, 21, 22, 23, 24, 25, 26 }; - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int8 yytable[] = { 33, 34, 35, 63, 64, -19, 52, 40, 41, 42, @@ -697,8 +704,8 @@ 16, -1, -1, -1, 19 }; - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 11, 12, 13, @@ -712,7 +719,7 @@ 30, 10 }; - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int8 yyr1[] = { 0, 28, 29, 29, 30, 30, 30, 31, 31, 31, @@ -722,7 +729,7 @@ 43, 44, 44, 44, 44, 44, 44 }; - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 0, 1, 3, 2, 1, 1, 1, 1, @@ -741,6 +748,7 @@ #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) @@ -781,10 +789,7 @@ YYFPRINTF Args; \ } while (0) -/* This macro is provided for backward compatibility. */ -# ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif + # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ @@ -808,16 +813,12 @@ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, ast** config_ast) { FILE *yyoutput = yyo; - YYUSE (yyoutput); - YYUSE (config_ast); + YY_USE (yyoutput); + YY_USE (config_ast); if (!yyvaluep) return; -# ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); -# endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -931,14 +932,14 @@ yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, ast** config_ast) { - YYUSE (yyvaluep); - YYUSE (config_ast); + YY_USE (yyvaluep); + YY_USE (config_ast); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -1001,6 +1002,7 @@ YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; @@ -1026,7 +1028,7 @@ if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; + YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ @@ -1054,7 +1056,7 @@ # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; @@ -1065,7 +1067,7 @@ YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) - goto yyexhaustedlab; + YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE @@ -1087,6 +1089,7 @@ } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + if (yystate == YYFINAL) YYACCEPT; @@ -1201,7 +1204,7 @@ case 3: /* config: statements */ #line 106 "src/conf_yacc.y" { *config_ast = (yyvsp[0].ast); } -#line 1205 "src/conf_yacc.c" +#line 1208 "src/conf_yacc.c" break; case 4: /* statements: statement TNEWLINE statements */ @@ -1210,13 +1213,13 @@ ast *temp = (yyvsp[-2].ast); temp->next = (yyvsp[0].ast); (yyval.ast) = (yyvsp[-2].ast); } -#line 1214 "src/conf_yacc.c" +#line 1217 "src/conf_yacc.c" break; case 5: /* statements: statement TNEWLINE */ #line 112 "src/conf_yacc.y" { (yyval.ast) = (yyvsp[-1].ast); } -#line 1220 "src/conf_yacc.c" +#line 1223 "src/conf_yacc.c" break; case 6: /* statements: statement */ @@ -1225,203 +1228,203 @@ log_msg(LOG_LEVEL_ERROR, "%s:%d: syntax error: unexpected token or end of file, expected newline (line: '%s')", conf_filename, conf_linenumber, conf_linebuf); YYABORT; } -#line 1229 "src/conf_yacc.c" +#line 1232 "src/conf_yacc.c" break; case 15: /* attribute_expression: attribute_expression '+' TEXPR */ #line 126 "src/conf_yacc.y" { (yyval.attr_expr) = new_attribute_expression(ATTR_OP_PLUS, (yyvsp[-2].attr_expr), (yyvsp[0].s)); } -#line 1235 "src/conf_yacc.c" +#line 1238 "src/conf_yacc.c" break; case 16: /* attribute_expression: attribute_expression '-' TEXPR */ #line 127 "src/conf_yacc.y" { (yyval.attr_expr) = new_attribute_expression(ATTR_OP_MINUS, (yyvsp[-2].attr_expr), (yyvsp[0].s)); } -#line 1241 "src/conf_yacc.c" +#line 1244 "src/conf_yacc.c" break; case 17: /* attribute_expression: TEXPR */ #line 128 "src/conf_yacc.y" { (yyval.attr_expr) = new_attribute_expression(ATTR_OP_GROUP, NULL, (yyvsp[0].s)); } -#line 1247 "src/conf_yacc.c" +#line 1250 "src/conf_yacc.c" break; case 18: /* restriction_expression: restriction_expression ',' TEXPR */ #line 130 "src/conf_yacc.y" { (yyval.rs_expr) = new_restriction_expression((yyvsp[-2].rs_expr), (yyvsp[0].s)); } -#line 1253 "src/conf_yacc.c" +#line 1256 "src/conf_yacc.c" break; case 19: /* restriction_expression: TEXPR */ #line 131 "src/conf_yacc.y" { (yyval.rs_expr) = new_restriction_expression(NULL, (yyvsp[0].s)); } -#line 1259 "src/conf_yacc.c" +#line 1262 "src/conf_yacc.c" break; case 20: /* define_statement: TDEFINE TVARIABLE */ #line 133 "src/conf_yacc.y" { (yyval.ast) = new_define_statement((yyvsp[0].s), NULL); } -#line 1265 "src/conf_yacc.c" +#line 1268 "src/conf_yacc.c" break; case 21: /* define_statement: TDEFINE TVARIABLE string_expression */ #line 134 "src/conf_yacc.y" { (yyval.ast) = new_define_statement((yyvsp[-1].s), (yyvsp[0].string_expr)); } -#line 1271 "src/conf_yacc.c" +#line 1274 "src/conf_yacc.c" break; case 22: /* string_expression: string_fragment string_expression */ #line 136 "src/conf_yacc.y" { (yyval.string_expr) = new_string_concat((yyvsp[-1].string_expr), (yyvsp[0].string_expr)); } -#line 1277 "src/conf_yacc.c" +#line 1280 "src/conf_yacc.c" break; case 23: /* string_expression: string_fragment */ #line 137 "src/conf_yacc.y" { (yyval.string_expr) = (yyvsp[0].string_expr); } -#line 1283 "src/conf_yacc.c" +#line 1286 "src/conf_yacc.c" break; case 24: /* string_fragment: TSTRING */ #line 138 "src/conf_yacc.y" { (yyval.string_expr) = new_string((yyvsp[0].s)); } -#line 1289 "src/conf_yacc.c" +#line 1292 "src/conf_yacc.c" break; case 25: /* string_fragment: TVARIABLE */ #line 139 "src/conf_yacc.y" { (yyval.string_expr) = new_variable((yyvsp[0].s)); } -#line 1295 "src/conf_yacc.c" +#line 1298 "src/conf_yacc.c" break; case 26: /* undefine_statement: TUNDEFINE TVARIABLE */ #line 141 "src/conf_yacc.y" { (yyval.ast) = new_undefine_statement((yyvsp[0].s)); } -#line 1301 "src/conf_yacc.c" +#line 1304 "src/conf_yacc.c" break; case 27: /* config_statement: CONFIGOPTION '=' string_expression */ #line 143 "src/conf_yacc.y" { (yyval.ast) = new_string_option_statement((yyvsp[-2].option), (yyvsp[0].string_expr)); } -#line 1307 "src/conf_yacc.c" +#line 1310 "src/conf_yacc.c" break; case 28: /* config_statement: CONFIGOPTION '=' attribute_expression */ #line 144 "src/conf_yacc.y" { (yyval.ast) = new_attribute_option_statement((yyvsp[-2].option), (yyvsp[0].attr_expr)); } -#line 1313 "src/conf_yacc.c" +#line 1316 "src/conf_yacc.c" break; case 29: /* group_statement: TGROUP '=' attribute_expression */ #line 146 "src/conf_yacc.y" { (yyval.ast) = new_group_statement((yyvsp[-2].s), (yyvsp[0].attr_expr)); } -#line 1319 "src/conf_yacc.c" +#line 1322 "src/conf_yacc.c" break; case 30: /* include_statement: TINCLUDE TSPACE string_expression */ #line 148 "src/conf_yacc.y" { (yyval.ast) = new_include_statement((yyvsp[0].string_expr), NULL, false); } -#line 1325 "src/conf_yacc.c" +#line 1328 "src/conf_yacc.c" break; case 31: /* include_statement: TINCLUDE TSPACE string_expression TSPACE string_expression */ #line 149 "src/conf_yacc.y" { (yyval.ast) = new_include_statement((yyvsp[-2].string_expr), (yyvsp[0].string_expr), false); } -#line 1331 "src/conf_yacc.c" +#line 1334 "src/conf_yacc.c" break; case 32: /* include_statement: TXINCLUDE TSPACE string_expression */ #line 150 "src/conf_yacc.y" { (yyval.ast) = new_include_statement((yyvsp[0].string_expr), NULL, true); } -#line 1337 "src/conf_yacc.c" +#line 1340 "src/conf_yacc.c" break; case 33: /* include_statement: TXINCLUDE TSPACE string_expression TSPACE string_expression */ #line 151 "src/conf_yacc.y" { (yyval.ast) = new_include_statement((yyvsp[-2].string_expr), (yyvsp[0].string_expr), true); } -#line 1343 "src/conf_yacc.c" +#line 1346 "src/conf_yacc.c" break; case 34: /* x_include_setenv_statement: TSETENV TVARIABLE string_expression */ #line 153 "src/conf_yacc.y" { (yyval.ast) = new_x_include_setenv_statement((yyvsp[-1].s), (yyvsp[0].string_expr)); } -#line 1349 "src/conf_yacc.c" +#line 1352 "src/conf_yacc.c" break; case 35: /* if_statement: if_condition TNEWLINE statements TENDIF */ #line 155 "src/conf_yacc.y" { (yyval.ast) = new_if_statement((yyvsp[-3].if_cond), (yyvsp[-1].ast), NULL); } -#line 1355 "src/conf_yacc.c" +#line 1358 "src/conf_yacc.c" break; case 36: /* if_statement: if_condition TNEWLINE statements TELSE TNEWLINE statements TENDIF */ #line 156 "src/conf_yacc.y" { (yyval.ast) = new_if_statement((yyvsp[-6].if_cond), (yyvsp[-4].ast), (yyvsp[-1].ast)); } -#line 1361 "src/conf_yacc.c" +#line 1364 "src/conf_yacc.c" break; case 37: /* if_condition: TIFDEF string_expression */ #line 158 "src/conf_yacc.y" { (yyval.if_cond)=new_if_condition(new_string_bool_expression(BOOL_OP_DEFINED, (yyvsp[0].string_expr))); } -#line 1367 "src/conf_yacc.c" +#line 1370 "src/conf_yacc.c" break; case 38: /* if_condition: TIFNDEF string_expression */ #line 159 "src/conf_yacc.y" { (yyval.if_cond)=new_if_condition(new_bool_expression(BOOL_OP_NOT, new_string_bool_expression(BOOL_OP_DEFINED, (yyvsp[0].string_expr)), NULL)); } -#line 1373 "src/conf_yacc.c" +#line 1376 "src/conf_yacc.c" break; case 39: /* if_condition: TIFHOST string_expression */ #line 160 "src/conf_yacc.y" { (yyval.if_cond)=new_if_condition(new_string_bool_expression(BOOL_OP_HOSTNAME, (yyvsp[0].string_expr))); } -#line 1379 "src/conf_yacc.c" +#line 1382 "src/conf_yacc.c" break; case 40: /* if_condition: TIFNHOST string_expression */ #line 161 "src/conf_yacc.y" { (yyval.if_cond)=new_if_condition(new_bool_expression(BOOL_OP_NOT, new_string_bool_expression(BOOL_OP_HOSTNAME, (yyvsp[0].string_expr)), NULL)); } -#line 1385 "src/conf_yacc.c" +#line 1388 "src/conf_yacc.c" break; case 41: /* rule_statement: TSELRXRULE string_expression attribute_expression */ #line 163 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_SELECTIVE_RULE, (yyvsp[-1].string_expr), NULL, (yyvsp[0].attr_expr)); } -#line 1391 "src/conf_yacc.c" +#line 1394 "src/conf_yacc.c" break; case 42: /* rule_statement: TEQURXRULE string_expression attribute_expression */ #line 164 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_EQUAL_RULE, (yyvsp[-1].string_expr), NULL, (yyvsp[0].attr_expr)); } -#line 1397 "src/conf_yacc.c" +#line 1400 "src/conf_yacc.c" break; case 43: /* rule_statement: TNEGRXRULE string_expression */ #line 165 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_NEGATIVE_RULE, (yyvsp[0].string_expr), NULL, NULL); } -#line 1403 "src/conf_yacc.c" +#line 1406 "src/conf_yacc.c" break; case 44: /* rule_statement: TSELRXRULE string_expression restriction_expression attribute_expression */ #line 166 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_SELECTIVE_RULE, (yyvsp[-2].string_expr), (yyvsp[-1].rs_expr), (yyvsp[0].attr_expr)); } -#line 1409 "src/conf_yacc.c" +#line 1412 "src/conf_yacc.c" break; case 45: /* rule_statement: TEQURXRULE string_expression restriction_expression attribute_expression */ #line 167 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_EQUAL_RULE, (yyvsp[-2].string_expr), (yyvsp[-1].rs_expr), (yyvsp[0].attr_expr)); } -#line 1415 "src/conf_yacc.c" +#line 1418 "src/conf_yacc.c" break; case 46: /* rule_statement: TNEGRXRULE string_expression restriction_expression */ #line 168 "src/conf_yacc.y" { (yyval.ast) = new_rule_statement(AIDE_NEGATIVE_RULE, (yyvsp[-1].string_expr), (yyvsp[0].rs_expr), NULL); } -#line 1421 "src/conf_yacc.c" +#line 1424 "src/conf_yacc.c" break; -#line 1425 "src/conf_yacc.c" +#line 1428 "src/conf_yacc.c" default: break; } @@ -1503,6 +1506,7 @@ label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; + ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -1563,7 +1567,7 @@ `-------------------------------------*/ yyacceptlab: yyresult = 0; - goto yyreturn; + goto yyreturnlab; /*-----------------------------------. @@ -1571,24 +1575,22 @@ `-----------------------------------*/ yyabortlab: yyresult = 1; - goto yyreturn; + goto yyreturnlab; -#if !defined yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ yyexhaustedlab: yyerror (config_ast, YY_("memory exhausted")); yyresult = 2; - goto yyreturn; -#endif + goto yyreturnlab; -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ -yyreturn: +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/src/conf_yacc.h new/aide-0.17.4/src/conf_yacc.h --- old/aide-0.17.3/src/conf_yacc.h 2021-02-10 22:27:46.000000000 +0100 +++ new/aide-0.17.4/src/conf_yacc.h 2022-01-19 21:13:12.000000000 +0100 @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.7.2. */ +/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -85,6 +85,7 @@ typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ +#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -127,7 +128,7 @@ restriction_expression* rs_expr; string_expression* string_expr; -#line 131 "src/conf_yacc.h" +#line 132 "src/conf_yacc.h" }; typedef union YYSTYPE YYSTYPE; @@ -138,6 +139,8 @@ extern YYSTYPE conflval; + int confparse (ast** config_ast); + #endif /* !YY_CONF_SRC_CONF_YACC_H_INCLUDED */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/src/db.c new/aide-0.17.4/src/db.c --- old/aide-0.17.3/src/db.c 2021-02-10 22:01:14.000000000 +0100 +++ new/aide-0.17.4/src/db.c 2022-01-19 21:02:55.000000000 +0100 @@ -428,13 +428,15 @@ time_t base64totime_t(char* s, database* db, const char* field_name){ + if(strcmp(s,"0")==0){ + return 0; + } byte* b=decode_base64(s,strlen(s),NULL); char* endp; - if (b==NULL||strcmp(s,"0")==0) { + if (b==NULL) { /* Should we print error here? */ - free(b); return 0; } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/version.m4 new/aide-0.17.4/version.m4 --- old/aide-0.17.3/version.m4 2021-02-10 22:27:40.000000000 +0100 +++ new/aide-0.17.4/version.m4 2022-01-19 21:13:00.000000000 +0100 @@ -1 +1 @@ -m4_define([AIDE_VERSION], [0.17.3]) +m4_define([AIDE_VERSION], [0.17.4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/aide-0.17.3/ylwrap new/aide-0.17.4/ylwrap --- old/aide-0.17.3/ylwrap 2021-02-10 22:27:43.000000000 +0100 +++ new/aide-0.17.4/ylwrap 2022-01-19 21:13:04.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # Written by Tom Tromey <tro...@cygnus.com>. #