ssize_t custom_read_slow(void* userdata, uint8_t* buf, size_t count)
{
struct custom_read_userdata* ud = (struct custom_read_userdata*)userdata;
- size_t num_to_read = (count > 0 ? 1 : 0);
+ size_t num_to_read = ((count > 0 && ud->bytes_left > 0) ? 1 : 0);
memcpy(buf, ud->bytes, num_to_read);
ud->bytes += num_to_read;
ud->bytes_left -= num_to_read;