From 261c004d7bf85de945a1a3956c1d8f15075bc224 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 30 Mar 2007 22:25:08 +0000 Subject: r22014: Make us pass RANDOMIPC test again :-(. This is an ugly check-in, but I've no option. Jeremy. (This used to be commit c3a565081d70b209a4f9e6e8f1859bf7194a5f74) --- source3/lib/util.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source3/lib/util.c') diff --git a/source3/lib/util.c b/source3/lib/util.c index cf8d49c502..809071662d 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -3124,3 +3124,26 @@ int this_is_smp(void) return 0; #endif } + +/**************************************************************** + Return a safe offset into a buffer, or NULL. +****************************************************************/ + +char *get_safe_offset(const char *buf_base, size_t buf_len, char *ptr, size_t off) +{ + const char *end_base = buf_base + buf_len; + const char *end_ptr = ptr + off; + + if (!buf_base || !ptr) { + return NULL; + } + + if (end_base < buf_base || end_ptr < ptr) { + return NULL; /* wrap. */ + } + + if (end_ptr < end_base) { + return ptr; + } + return NULL; +} -- cgit