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 filter_accept_reject_list(archive_handle_t *archive_handle) 15{ 16 const char *key = archive_handle->file_header->name; 17 const llist_t *reject_entry = find_list_entry2(archive_handle->reject, key); 18 const llist_t *accept_entry; 19 20 /* If the key is in a reject list fail */ 21 if (reject_entry) { 22 return EXIT_FAILURE; 23 } 24 accept_entry = find_list_entry2(archive_handle->accept, key); 25 26 /* Fail if an accept list was specified and the key wasnt in there */ 27 if ((accept_entry == NULL) && archive_handle->accept) { 28 return EXIT_FAILURE; 29 } 30 31 /* Accepted */ 32 return EXIT_SUCCESS; 33} 34