Rizin
unix-like reverse engineering framework and cli tools
zip_source_stat.c File Reference
#include "zipint.h"

Go to the source code of this file.

Functions

ZIP_EXTERN int zip_source_stat (zip_source_t *src, zip_stat_t *st)
 

Function Documentation

◆ zip_source_stat()

ZIP_EXTERN int zip_source_stat ( zip_source_t src,
zip_stat_t st 
)

Definition at line 39 of file zip_source_stat.c.

39  {
40  if (src->source_closed) {
41  return -1;
42  }
43  if (st == NULL) {
44  zip_error_set(&src->error, ZIP_ER_INVAL, 0);
45  return -1;
46  }
47 
48  zip_stat_init(st);
49 
51  if (zip_source_stat(src->src, st) < 0) {
52  _zip_error_set_from_source(&src->error, src->src);
53  return -1;
54  }
55  }
56 
57  if (_zip_source_call(src, st, sizeof(*st), ZIP_SOURCE_STAT) < 0) {
58  return -1;
59  }
60 
61  return 0;
62 }
lzma_index * src
Definition: index.h:567
#define NULL
Definition: cris-opc.c:27
ZIP_EXTERN void zip_error_set(zip_error_t *_Nullable, int, int)
Definition: zip_error.c:126
ZIP_EXTERN void zip_stat_init(zip_stat_t *_Nonnull)
Definition: zip_stat_init.c:40
@ ZIP_SOURCE_STAT
Definition: zip.h:223
#define ZIP_ER_INVAL
Definition: zip.h:123
void _zip_error_set_from_source(zip_error_t *err, zip_source_t *src)
Definition: zip_error.c:135
zip_int64_t _zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command)
ZIP_EXTERN int zip_source_stat(zip_source_t *src, zip_stat_t *st)
#define ZIP_SOURCE_IS_LAYERED(src)
Definition: zipint.h:404

References _zip_error_set_from_source(), _zip_source_call(), NULL, src, ZIP_ER_INVAL, zip_error_set(), ZIP_SOURCE_IS_LAYERED, ZIP_SOURCE_STAT, zip_source_stat(), and zip_stat_init().

Referenced by _zip_file_exists(), _zip_open(), add_data(), compress_callback(), crc_read(), decrypt_header(), encrypt_header(), main(), write_memory_src_to_file(), zip_source_stat(), zip_source_winzip_aes_decode(), and zip_stat_index().