summaryrefslogtreecommitdiffhomepage
path: root/archival/libunarchive/archive_xread_all_eof.c
blob: f11a7fd32d06ca6ce3441a4c92a792ec3c6ac539 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* vi: set sw=4 ts=4: */
/*
 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
 */

#include "libbb.h"
#include "unarchive.h"

ssize_t FAST_FUNC archive_xread_all_eof(archive_handle_t *archive_handle,
			unsigned char *buf, size_t count)
{
	ssize_t size;

	size = full_read(archive_handle->src_fd, buf, count);
	if (size != 0 && size != (ssize_t)count) {
		bb_error_msg_and_die("short read: %u of %u",
				(unsigned)size, (unsigned)count);
	}
	return size;
}