[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b

Török Edvin edwin at clamav.net
Sun Apr 4 01:08:21 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 4b2ade1d3b9972bdc44a34b876d74bcb680a2d74
Author: Török Edvin <edwin at clamav.net>
Date:   Mon Oct 26 18:05:51 2009 +0200

    Fix the FreeBSD crash fix (bb #1727).

diff --git a/libclamav/jsparse/js-norm.c b/libclamav/jsparse/js-norm.c
index 9de9dea..2c35086 100644
--- a/libclamav/jsparse/js-norm.c
+++ b/libclamav/jsparse/js-norm.c
@@ -500,17 +500,14 @@ static const char *de_packer_2[] = {"p","a","c","k","e","d"};
 
 static inline char *textbuffer_done(yyscan_t scanner)
 {
-        char *str = 0;
-	/* free unusued memory */
-        if (!scanner->buf.pos)
-	    scanner->buf.pos++;
-	str = cli_realloc(scanner->buf.data, scanner->buf.pos);
-	if(!str)
-	    str = scanner->buf.data;
-/*	memset(&scanner->buf, 0, sizeof(scanner->buf));
-	scanner->yytext = str;
-	scanner->yylen = scanner->buf.pos ? scanner->buf.pos - 1 : 0;*/
-	return str;
+       char *str = cli_realloc(scanner->buf.data, scanner->buf.pos);
+       if(!str) {
+               str = scanner->buf.data;
+       }
+       scanner->yytext = str;
+       scanner->yylen = scanner->buf.pos - 1;
+       memset(&scanner->buf, 0, sizeof(scanner->buf));
+       return str;
 }
 
 #define MODULE "JS-Norm: "
@@ -533,7 +530,7 @@ static int replace_token_range(struct tokens *dst, size_t start, size_t end, con
 	for(i=start;i<end;i++) {
 		free_token(&dst->data[i]);
 	}
-	if(tokens_ensure_capacity(dst, dst->cnt - (end-start) + len) < 0)
+	if(tokens_ensure_capacity(dst, dst->cnt - (end-start) + len))
 		return CL_EMEM;
 	memmove(&dst->data[start+len], &dst->data[end], (dst->cnt - end) * sizeof(dst->data[0]));
 	if(with && len > 0) {
@@ -547,7 +544,7 @@ static int append_tokens(struct tokens *dst, const struct tokens *src)
 {
 	if(!dst || !src)
 		return CL_ENULLARG;
-	if(tokens_ensure_capacity(dst, dst->cnt + src->cnt) == -1)
+	if(tokens_ensure_capacity(dst, dst->cnt + src->cnt))
 		return CL_EMEM;
 	cli_dbgmsg(MODULE "Appending %lu tokens\n", src->cnt);
 	memcpy(&dst->data[dst->cnt], src->data, src->cnt * sizeof(dst->data[0]));
@@ -1256,7 +1253,7 @@ static const enum char_class id_ctype[256] = {
 static void textbuf_clean(struct text_buffer *buf)
 {
 	if(buf->capacity > BUF_KEEP_SIZE) {
-	        yystype *data= cli_realloc(buf->data, BUF_KEEP_SIZE);
+	        char *data= cli_realloc(buf->data, BUF_KEEP_SIZE);
 		if (data)
 		    buf->data = data;
 		buf->capacity = BUF_KEEP_SIZE;
@@ -1344,6 +1341,8 @@ static inline int parseNumber(YYSTYPE *lvalp, yyscan_t scanner)
 		scanner->pos--;
 		textbuffer_putc(&scanner->buf, '\0');
 		scanner->state = Initial;
+		if (!scanner->buf.data)
+			return 0;
 		if(is_float) {
 			TOKEN_SET(lvalp, dval, atof(scanner->buf.data));
 			return TOK_NumericFloat;
@@ -1444,14 +1443,13 @@ static int yy_scan_bytes(const char *p, size_t len, yyscan_t scanner)
 
 static const char *yyget_text(yyscan_t scanner)
 {
-    assert(scanner->yytext || scanner->buf.data);
-    return scanner->yytext ? scanner->yytext : scanner->buf.data;
+    return scanner->yytext ? scanner->yytext :  scanner->buf.data;
 }
 
 static int yyget_leng(yyscan_t scanner)
 {
 	/* we have a \0 too */
-	return scanner->yylen ? scanner->yylen : (scanner->buf.pos > 0 ? scanner->buf.pos - 1 : 0);
+	return scanner->yylen ? scanner->yylen: (scanner->buf.pos > 0 ? scanner->buf.pos - 1 : 0);
 }
 
 static int yylex(YYSTYPE *lvalp, yyscan_t  scanner)

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list