From 0ae09036b4913a2c6f1c14585275d6be01fffc53 Mon Sep 17 00:00:00 2001 From: brenosilva Date: Wed, 27 Jul 2011 13:19:43 +0000 Subject: [PATCH] MODSEC-255 --- apache2/msc_util.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/apache2/msc_util.c b/apache2/msc_util.c index 17e96911..5bfe9c5e 100644 --- a/apache2/msc_util.c +++ b/apache2/msc_util.c @@ -421,12 +421,26 @@ char *file_dirname(apr_pool_t *p, const char *filename) { */ int hex2bytes_inplace(unsigned char *data, int len) { unsigned char *d = data; + char print = 0; int i, count = 0; if ((data == NULL)||(len == 0)) return 0; - for(i = 0; i <= len - 2; i += 2) { - *d++ = x2c(&data[i]); + for(i = 0; i <= len - 1; i++) { + if(VALID_HEX(data[i]) && VALID_HEX(data[i+1])) { + print = data[i]; + if(print > 0x31 && print < 0x38) { + *d++ = x2c(&data[i]); + i++; + } else { + *d++ = data[i]; + *d++ = data[i+1]; + i++; + count++; + } + } else { + *d++ = data[i]; + } count++; } *d = '\0';