Coverage Report

Created: 2026-07-25 07:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libzip/lib/zip_source_at_eof.c
Line
Count
Source
1
#include "zipint.h"
2
3
0
ZIP_EXTERN int zip_source_at_eof(zip_source_t *src) {
4
0
    zip_uint8_t d[1];
5
0
    zip_int64_t n;
6
7
0
    if (!ZIP_SOURCE_IS_OPEN_READING(src)) {
8
0
        zip_error_set(&src->error, ZIP_ER_INVAL, 0);
9
0
        return -1;
10
0
    }
11
12
0
    if (!src->eof) {
13
0
        if (src->supports & ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_AT_EOF)) {
14
0
            n = _zip_source_call(src, NULL, 0, ZIP_SOURCE_AT_EOF);
15
0
            if (n < 0) {
16
0
                return -1;
17
0
            }
18
0
            if (n != 0) {
19
0
                src->eof = true;
20
0
            }
21
0
        }
22
0
        else {
23
0
            n = zip_source_read(src, d, sizeof(d));
24
0
            if (n < 0) {
25
0
                return -1;
26
0
            }
27
0
            if (n > 0) {
28
0
                if (src->supports & ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK)) {
29
0
                    if (zip_source_seek(src, -1, SEEK_CUR) < 0) {
30
0
                        return -1;
31
0
                    }
32
0
                }
33
0
                else {
34
0
                    src->have_next_byte = true;
35
0
                    src->next_byte = d[0];
36
0
                    src->bytes_read -= 1;
37
0
                }
38
0
            }
39
0
        }
40
0
    }
41
42
0
    return src->eof ? 1 : 0;
43
0
}