capture-reader: cleanup some space checks

Add a few more assertions to make sure we have what we think we have. Also
we can drop self->pos from our while loop checks as it will always be zero.
This commit is contained in:
Christian Hergert
2018-02-13 17:10:02 -08:00
parent 0ec2c127ea
commit 951213ddb6

View File

@ -214,21 +214,22 @@ sp_capture_reader_ensure_space_for (SpCaptureReader *self,
gsize len)
{
g_assert (self != NULL);
g_assert (self->pos <= self->len);
g_assert (len > 0);
if ((self->len - self->pos) < len)
{
gssize r;
g_assert (self->len >= self->pos);
memmove (self->buf, &self->buf[self->pos], self->len - self->pos);
if (self->len > self->pos)
memmove (self->buf, &self->buf[self->pos], self->len - self->pos);
self->len -= self->pos;
self->pos = 0;
while ((self->len - self->pos) <= len)
while (self->len < len)
{
g_assert (self->pos + self->len < self->bufsz);
g_assert ((self->pos + self->len) < self->bufsz);
g_assert (self->len < self->bufsz);
/* Read into our buffer after our current read position */
r = pread (self->fd,
@ -285,6 +286,7 @@ sp_capture_reader_peek_frame (SpCaptureReader *self,
g_assert (self != NULL);
g_assert ((self->pos % SP_CAPTURE_ALIGN) == 0);
g_assert (self->pos <= self->len);
g_assert (self->pos <= self->bufsz);
if (!sp_capture_reader_ensure_space_for (self, sizeof *real_frame))