Index: branches/2016Q2/devel/jansson/Makefile =================================================================== --- branches/2016Q2/devel/jansson/Makefile (revision 415537) +++ branches/2016Q2/devel/jansson/Makefile (revision 415538) @@ -1,23 +1,23 @@ # Created by: vanilla@ # $FreeBSD$ PORTNAME= jansson PORTVERSION= 2.7 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= devel MASTER_SITES= http://www.digip.org/jansson/releases/ MAINTAINER= vanilla@FreeBSD.org COMMENT= C library for encoding, decoding, and manipulating JSON data LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE USES= cpe pathfix pkgconfig gmake tar:bzip2 libtool USE_LDCONFIG= yes GNU_CONFIGURE= yes CPE_VENDOR= jansson_project INSTALL_TARGET= install-strip TEST_TARGET= check .include Index: branches/2016Q2/devel/jansson/files/patch-CVE-2016-4425 =================================================================== --- branches/2016Q2/devel/jansson/files/patch-CVE-2016-4425 (revision 415537) +++ branches/2016Q2/devel/jansson/files/patch-CVE-2016-4425 (revision 415538) @@ -1,43 +1,51 @@ ---- src/jansson_config.h.in.orig 2016-05-04 11:43:48.386196000 +0800 -+++ src/jansson_config.h.in 2016-05-04 11:44:21.204996000 +0800 +--- src/jansson_config.h.in.orig 2016-05-16 10:22:34.333432000 +0800 ++++ src/jansson_config.h.in 2016-05-16 10:23:18.042096000 +0800 @@ -36,4 +36,8 @@ otherwise to 0. */ #define JSON_HAVE_LOCALECONV @json_have_localeconv@ +/* Maximum recursion depth for parsing JSON input. -+ * This limits the depth of e.g. array-within-array constructions. */ ++ This limits the depth of e.g. array-within-array constructions. */ +#define JSON_PARSER_MAX_DEPTH 2048 + #endif ---- src/load.c.orig 2016-05-04 11:44:34.356957000 +0800 -+++ src/load.c 2016-05-04 11:46:44.547307000 +0800 +--- src/load.c.orig 2014-10-02 12:59:26.000000000 +0800 ++++ src/load.c 2016-05-16 10:21:41.006239000 +0800 @@ -61,6 +61,7 @@ typedef struct { typedef struct { stream_t stream; strbuffer_t saved_text; + size_t depth; int token; union { struct { @@ -800,6 +801,12 @@ static json_t *parse_value(lex_t *lex, s json_t *json; double value; + lex->depth++; + if(lex->depth > JSON_PARSER_MAX_DEPTH) { + error_set(error, lex, "maximum parsing depth reached"); + return NULL; + } + switch(lex->token) { case TOKEN_STRING: { const char *value = lex->value.string.val; -@@ -877,6 +884,8 @@ static json_t *parse_json(lex_t *lex, si +@@ -870,6 +877,7 @@ static json_t *parse_value(lex_t *lex, s + if(!json) + return NULL; + ++ lex->depth--; + return json; + } + +@@ -877,6 +885,8 @@ static json_t *parse_json(lex_t *lex, si { json_t *result; + lex->depth = 0; + lex_scan(lex, error); if(!(flags & JSON_DECODE_ANY)) { if(lex->token != '[' && lex->token != '{') { Index: branches/2016Q2 =================================================================== --- branches/2016Q2 (revision 415537) +++ branches/2016Q2 (revision 415538) Property changes on: branches/2016Q2 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r415303