[sysprof] capture-reader: cleanup some space checks
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof] capture-reader: cleanup some space checks
- Date: Wed, 14 Feb 2018 01:10:15 +0000 (UTC)
commit 951213ddb6c477ef39758aa223b02ae9130dbf8b
Author: Christian Hergert <chergert redhat com>
Date: Tue Feb 13 17:10:02 2018 -0800
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.
lib/capture/sp-capture-reader.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/lib/capture/sp-capture-reader.c b/lib/capture/sp-capture-reader.c
index 1ee8540..495bd29 100644
--- a/lib/capture/sp-capture-reader.c
+++ b/lib/capture/sp-capture-reader.c
@@ -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))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]