fix comparison of unsigned expression < 0 is always false
found by clangcute-signatures
parent
04003569c5
commit
16336ba265
|
@ -159,8 +159,9 @@ static void handle_extended_header(struct apk_file_info *fi, apk_blob_t hdr)
|
||||||
unsigned int len = apk_blob_pull_uint(&hdr, 10);
|
unsigned int len = apk_blob_pull_uint(&hdr, 10);
|
||||||
apk_blob_pull_char(&hdr, ' ');
|
apk_blob_pull_char(&hdr, ' ');
|
||||||
if (!apk_blob_split(hdr, APK_BLOB_STR("="), &name, &hdr)) break;
|
if (!apk_blob_split(hdr, APK_BLOB_STR("="), &name, &hdr)) break;
|
||||||
|
if (len < hdr.ptr - start + 1) break;
|
||||||
len -= hdr.ptr - start + 1;
|
len -= hdr.ptr - start + 1;
|
||||||
if (len < 0 || hdr.len < len) break;
|
if (hdr.len < len) break;
|
||||||
value = APK_BLOB_PTR_LEN(hdr.ptr, len);
|
value = APK_BLOB_PTR_LEN(hdr.ptr, len);
|
||||||
hdr = APK_BLOB_PTR_LEN(hdr.ptr+len, hdr.len-len);
|
hdr = APK_BLOB_PTR_LEN(hdr.ptr+len, hdr.len-len);
|
||||||
apk_blob_pull_char(&hdr, '\n');
|
apk_blob_pull_char(&hdr, '\n');
|
||||||
|
|
8
src/io.c
8
src/io.c
|
@ -151,7 +151,8 @@ struct apk_istream *apk_istream_from_file(int atfd, const char *file)
|
||||||
size_t apk_istream_skip(struct apk_istream *is, size_t size)
|
size_t apk_istream_skip(struct apk_istream *is, size_t size)
|
||||||
{
|
{
|
||||||
unsigned char buf[2048];
|
unsigned char buf[2048];
|
||||||
size_t done = 0, r, togo;
|
size_t done = 0, togo;
|
||||||
|
ssize_t r;
|
||||||
|
|
||||||
while (done < size) {
|
while (done < size) {
|
||||||
togo = size - done;
|
togo = size - done;
|
||||||
|
@ -173,7 +174,8 @@ size_t apk_istream_splice(void *stream, int fd, size_t size,
|
||||||
static void *splice_buffer = NULL;
|
static void *splice_buffer = NULL;
|
||||||
struct apk_istream *is = (struct apk_istream *) stream;
|
struct apk_istream *is = (struct apk_istream *) stream;
|
||||||
unsigned char *buf, *mmapbase = MAP_FAILED;
|
unsigned char *buf, *mmapbase = MAP_FAILED;
|
||||||
size_t bufsz, done = 0, r, togo;
|
size_t bufsz, done = 0, togo;
|
||||||
|
ssize_t r;
|
||||||
|
|
||||||
bufsz = size;
|
bufsz = size;
|
||||||
if (size > 128 * 1024) {
|
if (size > 128 * 1024) {
|
||||||
|
@ -536,7 +538,7 @@ struct apk_bstream *apk_bstream_tee(struct apk_bstream *from, int atfd, const ch
|
||||||
apk_blob_t apk_blob_from_istream(struct apk_istream *is, size_t size)
|
apk_blob_t apk_blob_from_istream(struct apk_istream *is, size_t size)
|
||||||
{
|
{
|
||||||
void *ptr;
|
void *ptr;
|
||||||
size_t rsize;
|
ssize_t rsize;
|
||||||
|
|
||||||
ptr = malloc(size);
|
ptr = malloc(size);
|
||||||
if (ptr == NULL)
|
if (ptr == NULL)
|
||||||
|
|
Loading…
Reference in New Issue