xref: /aosp_15_r20/system/libziparchive/zip_error.h (revision adcb0a6279ea715828f9bc5e351569419e478774)
1*adcb0a62SAndroid Build Coastguard Worker /*
2*adcb0a62SAndroid Build Coastguard Worker  * Copyright (C) 2020 The Android Open Source Project
3*adcb0a62SAndroid Build Coastguard Worker  *
4*adcb0a62SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*adcb0a62SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*adcb0a62SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*adcb0a62SAndroid Build Coastguard Worker  *
8*adcb0a62SAndroid Build Coastguard Worker  *    http://www.apache.org/licenses/LICENSE-2.0
9*adcb0a62SAndroid Build Coastguard Worker  *
10*adcb0a62SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*adcb0a62SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*adcb0a62SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*adcb0a62SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*adcb0a62SAndroid Build Coastguard Worker  * limitations under the License.
15*adcb0a62SAndroid Build Coastguard Worker  */
16*adcb0a62SAndroid Build Coastguard Worker 
17*adcb0a62SAndroid Build Coastguard Worker #pragma once
18*adcb0a62SAndroid Build Coastguard Worker 
19*adcb0a62SAndroid Build Coastguard Worker #include <stdint.h>
20*adcb0a62SAndroid Build Coastguard Worker 
21*adcb0a62SAndroid Build Coastguard Worker enum ZipError : int32_t {
22*adcb0a62SAndroid Build Coastguard Worker   kSuccess = 0,
23*adcb0a62SAndroid Build Coastguard Worker 
24*adcb0a62SAndroid Build Coastguard Worker   kIterationEnd = -1,
25*adcb0a62SAndroid Build Coastguard Worker 
26*adcb0a62SAndroid Build Coastguard Worker   // We encountered a Zlib error when inflating a stream from this file.
27*adcb0a62SAndroid Build Coastguard Worker   // Usually indicates file corruption.
28*adcb0a62SAndroid Build Coastguard Worker   kZlibError = -2,
29*adcb0a62SAndroid Build Coastguard Worker 
30*adcb0a62SAndroid Build Coastguard Worker   // The input file cannot be processed as a zip archive. Usually because
31*adcb0a62SAndroid Build Coastguard Worker   // it's too small, too large or does not have a valid signature.
32*adcb0a62SAndroid Build Coastguard Worker   kInvalidFile = -3,
33*adcb0a62SAndroid Build Coastguard Worker 
34*adcb0a62SAndroid Build Coastguard Worker   // An invalid iteration / ziparchive handle was passed in as an input
35*adcb0a62SAndroid Build Coastguard Worker   // argument.
36*adcb0a62SAndroid Build Coastguard Worker   kInvalidHandle = -4,
37*adcb0a62SAndroid Build Coastguard Worker 
38*adcb0a62SAndroid Build Coastguard Worker   // The zip archive contained two (or possibly more) entries with the same
39*adcb0a62SAndroid Build Coastguard Worker   // name.
40*adcb0a62SAndroid Build Coastguard Worker   kDuplicateEntry = -5,
41*adcb0a62SAndroid Build Coastguard Worker 
42*adcb0a62SAndroid Build Coastguard Worker   // The zip archive contains no entries.
43*adcb0a62SAndroid Build Coastguard Worker   kEmptyArchive = -6,
44*adcb0a62SAndroid Build Coastguard Worker 
45*adcb0a62SAndroid Build Coastguard Worker   // The specified entry was not found in the archive.
46*adcb0a62SAndroid Build Coastguard Worker   kEntryNotFound = -7,
47*adcb0a62SAndroid Build Coastguard Worker 
48*adcb0a62SAndroid Build Coastguard Worker   // The zip archive contained an invalid local file header pointer.
49*adcb0a62SAndroid Build Coastguard Worker   kInvalidOffset = -8,
50*adcb0a62SAndroid Build Coastguard Worker 
51*adcb0a62SAndroid Build Coastguard Worker   // The zip archive contained inconsistent entry information. This could
52*adcb0a62SAndroid Build Coastguard Worker   // be because the central directory & local file header did not agree, or
53*adcb0a62SAndroid Build Coastguard Worker   // if the actual uncompressed length or crc32 do not match their declared
54*adcb0a62SAndroid Build Coastguard Worker   // values.
55*adcb0a62SAndroid Build Coastguard Worker   kInconsistentInformation = -9,
56*adcb0a62SAndroid Build Coastguard Worker 
57*adcb0a62SAndroid Build Coastguard Worker   // An invalid entry name was encountered.
58*adcb0a62SAndroid Build Coastguard Worker   kInvalidEntryName = -10,
59*adcb0a62SAndroid Build Coastguard Worker 
60*adcb0a62SAndroid Build Coastguard Worker   // An I/O related system call (read, lseek, ftruncate, map) failed.
61*adcb0a62SAndroid Build Coastguard Worker   kIoError = -11,
62*adcb0a62SAndroid Build Coastguard Worker 
63*adcb0a62SAndroid Build Coastguard Worker   // We were not able to mmap the central directory or entry contents.
64*adcb0a62SAndroid Build Coastguard Worker   kMmapFailed = -12,
65*adcb0a62SAndroid Build Coastguard Worker 
66*adcb0a62SAndroid Build Coastguard Worker   // An allocation failed.
67*adcb0a62SAndroid Build Coastguard Worker   kAllocationFailed = -13,
68*adcb0a62SAndroid Build Coastguard Worker 
69*adcb0a62SAndroid Build Coastguard Worker   // The compressed or uncompressed size is larger than UINT32_MAX and
70*adcb0a62SAndroid Build Coastguard Worker   // doesn't fit into the 32 bits zip entry.
71*adcb0a62SAndroid Build Coastguard Worker   kUnsupportedEntrySize = -14,
72*adcb0a62SAndroid Build Coastguard Worker 
73*adcb0a62SAndroid Build Coastguard Worker   kLastErrorCode = kUnsupportedEntrySize,
74*adcb0a62SAndroid Build Coastguard Worker };
75