From df5afa4fcd9725380f94ca6476248d4cc24f889a Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Sun, 29 Nov 2015 08:22:13 -0800 Subject: v2.4.4 audit sources Change-Id: I9315a7408817db51edf084fb4d27fbb492785084 Signed-off-by: Ashlee Young --- framework/src/audit/lib/strsplit.c | 91 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 framework/src/audit/lib/strsplit.c (limited to 'framework/src/audit/lib/strsplit.c') diff --git a/framework/src/audit/lib/strsplit.c b/framework/src/audit/lib/strsplit.c new file mode 100644 index 00000000..8337e6da --- /dev/null +++ b/framework/src/audit/lib/strsplit.c @@ -0,0 +1,91 @@ +/* strsplit.c -- + * Copyright 2014 Red Hat Inc., Durham, North Carolina. + * All Rights Reserved. + * + * 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 of the License, 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; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Authors: + * Steve Grubb + * + */ + +#include +#include "libaudit.h" +#include "private.h" + +char *audit_strsplit_r(char *s, char **savedpp) +{ + char *ptr; + + if (s) + *savedpp = s; + else { + if (*savedpp == NULL) + return NULL; + *savedpp += 1; + } +retry: + ptr = strchr(*savedpp, ' '); + if (ptr) { + if (ptr == *savedpp) { + *savedpp += 1; + goto retry; + } + s = *savedpp; + *ptr = 0; + *savedpp = ptr; + return s; + } else { + s = *savedpp; + *savedpp = NULL; + if (*s == 0) + return NULL; + return s; + } +} +hidden_def(audit_strsplit_r) + +char *audit_strsplit(char *s) +{ + static char *str = NULL; + char *ptr; + + if (s) + str = s; + else { + if (str == NULL) + return NULL; + str++; + } +retry: + ptr = strchr(str, ' '); + if (ptr) { + if (ptr == str) { + str++; + goto retry; + } + s = str; + *ptr = 0; + str = ptr; + return s; + } else { + s = str; + str = NULL; + if (*s == 0) + return NULL; + return s; + } +} +hidden_def(audit_strsplit) -- cgit 1.2.3-korg