[gtk+] x11: Move length checking into return_if_fail() macro
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] x11: Move length checking into return_if_fail() macro
- Date: Tue, 19 Feb 2013 13:48:12 +0000 (UTC)
commit b36b89151e71860416ae6917690815175df3da9d
Author: Benjamin Otte <otte redhat com>
Date: Tue Feb 12 19:28:41 2013 +0100
x11: Move length checking into return_if_fail() macro
gdk/x11/xsettings-client.c | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c
index a54dbea..7fff6b9 100644
--- a/gdk/x11/xsettings-client.c
+++ b/gdk/x11/xsettings-client.c
@@ -112,14 +112,18 @@ notify_changes (XSettingsClient *client,
#define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos)
+#define return_if_fail_bytes(buffer, n_bytes) G_STMT_START{ \
+ if (BYTES_LEFT (buffer) < (n_bytes)) \
+ return XSETTINGS_ACCESS; \
+}G_STMT_END
+
static XSettingsResult
fetch_card16 (XSettingsBuffer *buffer,
CARD16 *result)
{
CARD16 x;
- if (BYTES_LEFT (buffer) < 2)
- return XSETTINGS_ACCESS;
+ return_if_fail_bytes (buffer, 2);
x = *(CARD16 *)buffer->pos;
buffer->pos += 2;
@@ -152,8 +156,7 @@ fetch_card32 (XSettingsBuffer *buffer,
{
CARD32 x;
- if (BYTES_LEFT (buffer) < 4)
- return XSETTINGS_ACCESS;
+ return_if_fail_bytes (buffer, 4);
x = *(CARD32 *)buffer->pos;
buffer->pos += 4;
@@ -170,8 +173,7 @@ static XSettingsResult
fetch_card8 (XSettingsBuffer *buffer,
CARD8 *result)
{
- if (BYTES_LEFT (buffer) < 1)
- return XSETTINGS_ACCESS;
+ return_if_fail_bytes (buffer, 1);
*result = *(CARD8 *)buffer->pos;
buffer->pos += 1;
@@ -189,10 +191,11 @@ fetch_string (XSettingsBuffer *buffer,
guint pad_len;
pad_len = XSETTINGS_PAD (length, 4);
- if (pad_len < length /* guard against overflow */
- || BYTES_LEFT (buffer) < pad_len)
+ if (pad_len < length) /* guard against overflow */
return XSETTINGS_ACCESS;
+ return_if_fail_bytes (buffer, pad_len);
+
*result = g_strndup ((char *) buffer->pos, length);
buffer->pos += pad_len;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]