From 8d449d442ba633ca9944373d832916c727935f78 Mon Sep 17 00:00:00 2001 From: leitner Date: Sun, 30 Jul 2017 12:46:21 +0000 Subject: [PATCH] don't write one more byte in error case --- textcode/scan_ldapescape.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/textcode/scan_ldapescape.c b/textcode/scan_ldapescape.c index 464abf7..fed16dd 100644 --- a/textcode/scan_ldapescape.c +++ b/textcode/scan_ldapescape.c @@ -7,12 +7,13 @@ size_t scan_ldapescape(const char *src,char *dest,size_t *destlen) { size_t written=0,i; for (i=0; s[i]; ++i) { if (s[i]=='\\') { + unsigned char c; int j=scan_fromhex(s[i+1]); if (j<0) break; - if (dest) dest[written]=j<<4; + c=j<<4; j=scan_fromhex(s[i+2]); if (j<0) break; - if (dest) dest[written]|=j; + if (dest) dest[written]=c|j; i+=2; } else { if (dest) dest[written]=s[i];