From ce2a0f5a6aa008e1094f7265b3df77a740dfb78f Mon Sep 17 00:00:00 2001 From: Giovanni Bajo Date: Wed, 25 Apr 2012 17:47:56 +0200 Subject: [PATCH] Macros to simplify tentative parsing. --- src/dnssec.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/dnssec.c b/src/dnssec.c index 04b80cc..c9f80ee 100644 --- a/src/dnssec.c +++ b/src/dnssec.c @@ -3,6 +3,25 @@ #include "dnssec-crypto.h" #include +#define CHECKED_GETCHAR(var, ptr, len) do { \ + if ((len) < 1) return 0; \ + var = *ptr++; \ + (len) -= 1; \ + } while (0) + +#define CHECKED_GETSHORT(var, ptr, len) do { \ + if ((len) < 2) return 0; \ + GETSHORT(var, ptr); \ + (len) -= 2; \ + } while (0) + +#define CHECKED_GETLONG(var, ptr, len) do { \ + if ((len) < 4) return 0; \ + GETLONG(var, ptr); \ + (len) -= 4; \ + } while (0) + + #define SERIAL_UNDEF -100 #define SERIAL_EQ 0 #define SERIAL_LT -1