Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2016 06:25:13 +0000 (UTC)
From:      "Vanilla I. Shu" <vanilla@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r414586 - in head/devel/jansson: . files
Message-ID:  <201605040625.u446PD6b059005@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vanilla
Date: Wed May  4 06:25:13 2016
New Revision: 414586
URL: https://svnweb.freebsd.org/changeset/ports/414586

Log:
  Fix CVE-2016-4425.
  
  PR:		209219
  Submitted by:	junovitch@

Added:
  head/devel/jansson/files/patch-CVE-2016-4425   (contents, props changed)
Modified:
  head/devel/jansson/Makefile

Modified: head/devel/jansson/Makefile
==============================================================================
--- head/devel/jansson/Makefile	Wed May  4 06:10:36 2016	(r414585)
+++ head/devel/jansson/Makefile	Wed May  4 06:25:13 2016	(r414586)
@@ -3,7 +3,7 @@
 
 PORTNAME=	jansson
 PORTVERSION=	2.7
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 MASTER_SITES=	http://www.digip.org/jansson/releases/
 
@@ -17,5 +17,7 @@ USES=		cpe pathfix pkgconfig gmake tar:b
 USE_LDCONFIG=	yes
 GNU_CONFIGURE=	yes
 CPE_VENDOR=	jansson_project
+INSTALL_TARGET=	install-strip
+TEST_TARGET=	check
 
 .include <bsd.port.mk>

Added: head/devel/jansson/files/patch-CVE-2016-4425
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/jansson/files/patch-CVE-2016-4425	Wed May  4 06:25:13 2016	(r414586)
@@ -0,0 +1,43 @@
+--- 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
+@@ -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. */
++#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
+@@ -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
+ {
+     json_t *result;
+ 
++    lex->depth = 0;
++
+     lex_scan(lex, error);
+     if(!(flags & JSON_DECODE_ANY)) {
+         if(lex->token != '[' && lex->token != '{') {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605040625.u446PD6b059005>