VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common/libzip/zip_error.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/libzip/zip_error.c')
-rw-r--r--src/Common/libzip/zip_error.c89
1 files changed, 45 insertions, 44 deletions
diff --git a/src/Common/libzip/zip_error.c b/src/Common/libzip/zip_error.c
index 5f4e07dc..c498e086 100644
--- a/src/Common/libzip/zip_error.c
+++ b/src/Common/libzip/zip_error.c
@@ -1,9 +1,9 @@
/*
zip_error.c -- zip_error_t helper functions
- Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2021 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
- The authors can be contacted at <libzip@nih.at>
+ The authors can be contacted at <info@libzip.org>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -17,7 +17,7 @@
3. The names of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
-
+
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,52 +49,49 @@ zip_error_code_zip(const zip_error_t *error) {
ZIP_EXTERN void
-zip_error_fini(zip_error_t *err)
-{
+zip_error_fini(zip_error_t *err) {
free(err->str);
err->str = NULL;
}
ZIP_EXTERN void
-zip_error_init(zip_error_t *err)
-{
+zip_error_init(zip_error_t *err) {
err->zip_err = ZIP_ER_OK;
err->sys_err = 0;
err->str = NULL;
}
ZIP_EXTERN void
-zip_error_init_with_code(zip_error_t *error, int ze)
-{
+zip_error_init_with_code(zip_error_t *error, int ze) {
zip_error_init(error);
error->zip_err = ze;
switch (zip_error_system_type(error)) {
- case ZIP_ET_SYS:
- error->sys_err = errno;
- break;
-
- default:
- error->sys_err = 0;
- break;
- }
+ case ZIP_ET_SYS:
+ case ZIP_ET_LIBZIP:
+ error->sys_err = errno;
+ break;
+
+ default:
+ error->sys_err = 0;
+ break;
+ }
}
ZIP_EXTERN int
zip_error_system_type(const zip_error_t *error) {
- if (error->zip_err < 0 || error->zip_err >= _zip_nerr_str)
+ if (error->zip_err < 0 || error->zip_err >= _zip_err_str_count)
return ZIP_ET_NONE;
-
- return _zip_err_type[error->zip_err];
+
+ return _zip_err_str[error->zip_err].type;
}
void
-_zip_error_clear(zip_error_t *err)
-{
+_zip_error_clear(zip_error_t *err) {
if (err == NULL)
- return;
+ return;
err->zip_err = ZIP_ER_OK;
err->sys_err = 0;
@@ -102,54 +99,58 @@ _zip_error_clear(zip_error_t *err)
void
-_zip_error_copy(zip_error_t *dst, const zip_error_t *src)
-{
+_zip_error_copy(zip_error_t *dst, const zip_error_t *src) {
+ if (dst == NULL) {
+ return;
+ }
+
dst->zip_err = src->zip_err;
dst->sys_err = src->sys_err;
}
void
-_zip_error_get(const zip_error_t *err, int *zep, int *sep)
-{
+_zip_error_get(const zip_error_t *err, int *zep, int *sep) {
if (zep)
- *zep = err->zip_err;
+ *zep = err->zip_err;
if (sep) {
- if (zip_error_system_type(err) != ZIP_ET_NONE)
- *sep = err->sys_err;
- else
- *sep = 0;
+ if (zip_error_system_type(err) != ZIP_ET_NONE)
+ *sep = err->sys_err;
+ else
+ *sep = 0;
}
}
void
-zip_error_set(zip_error_t *err, int ze, int se)
-{
+zip_error_set(zip_error_t *err, int ze, int se) {
if (err) {
- err->zip_err = ze;
- err->sys_err = se;
+ err->zip_err = ze;
+ err->sys_err = se;
}
}
void
-_zip_error_set_from_source(zip_error_t *err, zip_source_t *src)
-{
+zip_error_set_from_source(zip_error_t *err, zip_source_t *src) {
+ if (src == NULL) {
+ zip_error_set(err, ZIP_ER_INVAL, 0);
+ return;
+ }
+
_zip_error_copy(err, zip_source_error(src));
}
zip_int64_t
-zip_error_to_data(const zip_error_t *error, void *data, zip_uint64_t length)
-{
+zip_error_to_data(const zip_error_t *error, void *data, zip_uint64_t length) {
int *e = (int *)data;
-
- if (length < sizeof(int)*2) {
+
+ if (length < sizeof(int) * 2) {
return -1;
}
-
+
e[0] = zip_error_code_zip(error);
e[1] = zip_error_code_system(error);
- return sizeof(int)*2;
+ return sizeof(int) * 2;
}