/
githubmirror
/
audit-userspace
Обзор
Документация
Войти
/
githubmirror
/
audit-userspace
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v4.0.5
common/common.h
99 строк
3 KB
Steve Grubb
Hide audit_fgets until plugin work is ready
03 июн 2025, 18:29
03 июн 2025, 18:29
b0aa8a6
Код
Авторство
О чём код?
/* common.h -- common utility functions used throughout * Copyright 2018-24 Red Hat Inc. * All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Authors: * Steve Grubb <sgrubb@redhat.com> */ #ifndef AUDIT_COMMON_HEADER #define AUDIT_COMMON_HEADER #ifdef HAVE_ATOMIC #include <stdatomic.h> #endif #include <sys/types.h> #include "dso.h" // These macros originate in sys/cdefs.h #ifndef __attr_access # define __attr_access(x) #endif #ifndef __attribute_malloc__ # define __attribute_malloc__ #endif #ifndef __attr_dealloc # define __attr_dealloc(dealloc, argno) #endif #ifndef __wur # define __wur #endif /* Wrapper macros for optional atomics * Note: ATOMIC_INT and ATOMIC_UNSIGNED are defined in config.h */ #ifdef HAVE_ATOMIC # define AUDIT_ATOMIC_STORE(var, val) \ atomic_store_explicit(&(var), (val), memory_order_relaxed) # define AUDIT_ATOMIC_LOAD(var) \ atomic_load_explicit(&(var), memory_order_relaxed) #else # define AUDIT_ATOMIC_STORE(var, val) do { (var) = (val); } while (0) # define AUDIT_ATOMIC_LOAD(var) (var) #endif // Used in auditd-event.c and audisp.c to size buffers for formatting #define FORMAT_BUF_LEN (MAX_AUDIT_MESSAGE_LENGTH + _POSIX_HOST_NAME_MAX) AUDIT_HIDDEN_START char *audit_strsplit_r(char *s, char **savedpp); char *audit_strsplit(char *s); int audit_is_last_record(int type); #define MINUTES 60 #define HOURS 60*MINUTES #define DAYS 24*HOURS #define WEEKS 7*DAYS #define MONTHS 30*DAYS long time_string_to_seconds(const char *time_string, const char *subsystem, int line); int write_to_console(const char *fmt, ...) #ifdef __GNUC__ __attribute__((format(printf, 1, 2))); #else ; #endif void wall_message(const char *fmt, ...) #ifdef __GNUC__ __attribute__((format(printf, 1, 2))); #else ; #endif AUDIT_HIDDEN_END // FIXME temporary /* Helper function for reading stdin in plugins */ void audit_fgets_clear(void); int audit_fgets_eof(void); int audit_fgets_more(size_t blen); int audit_fgets(char *buf, size_t blen, int fd) __attr_access ((__write_only__, 1, 2)); #endif