Line | |
---|
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 | */
|
---|
14 | char 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 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.