1/* vi: set sw=4 ts=4: */ 2/* 3 * Copyright (C) 2002 by Glenn McGrath 4 * 5 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 6 */ 7 8#include "libbb.h" 9#include "unarchive.h" 10 11/* 12 * Accept names that are in the accept list and not in the reject list 13 */ 14char FAST_FUNC filter_accept_reject_list(archive_handle_t *archive_handle) 15{ 16 const char *key; 17 const llist_t *reject_entry; 18 const llist_t *accept_entry; 19 20 key = archive_handle->file_header->name; 21 22 /* If the key is in a reject list fail */ 23 reject_entry = find_list_entry2(archive_handle->reject, key); 24 if (reject_entry) { 25 return EXIT_FAILURE; 26 } 27 accept_entry = find_list_entry2(archive_handle->accept, key); 28 29 /* Fail if an accept list was specified and the key wasnt in there */ 30 if ((accept_entry == NULL) && archive_handle->accept) { 31 return EXIT_FAILURE; 32 } 33 34 /* Accepted */ 35 return EXIT_SUCCESS; 36} 37