Even Rouault 86dd55a74a Fix potential out-of-bounds read in json_tokener_error_desc
Found by Coverity. The number of elements of an array 'ar' is found by
sizeof(ar)/sizeof(ar[0]) and not sizeof(ar)

76const char *json_tokener_error_desc(enum json_tokener_error jerr)
 77{
 78        int jerr_int = (int)jerr;

1. Condition "jerr_int < 0", taking false branch

2. Condition "jerr_int > 112 /* (int)sizeof (gdal_json_tokener_errors) */", taking false branch
 79        if (jerr_int < 0 || jerr_int > (int)sizeof(json_tokener_errors))
 80                return "Unknown error, invalid json_tokener_error value passed to json_tokener_error_desc()";

CID 1076806 (#1 of 1): Out-of-bounds read (OVERRUN)3. overrun-local: Overrunning array "gdal_json_tokener_errors" of 14 8-byte elements at element index 112 (byte offset 896) using index "jerr" (which evaluates to 112).
 81        return json_tokener_errors[jerr];
 82}
2013-09-08 11:31:38 +02:00
2012-07-29 20:02:00 -05:00
2013-01-11 01:36:55 -08:00

Building on Unix with git, gcc and autotools

Home page for json-c:
  https://github.com/json-c/json-c/wiki

  Caution: do NOT use sources from svn.metaparadigm.com, they are old.

Prerequisites:
	gcc (or another C compiler)
	libtool

	If you're not using a release tarball, you'll also need:
	autoconf (autoreconf)
	automake
	Make sure you have a complete libtool install, including libtoolize

Github repo for json-c:
  https://github.com/json-c/json-c

    $ git clone https://github.com/json-c/json-c.git
    $ cd json-c
    $ sh autogen.sh

Then 

    $ ./configure
    $ make
    $ make install

To build and run the test programs run 

    $ make check

Linking to libjson-c

If your system has pkgconfig then you can just add this to your makefile

CFLAGS += $(shell pkg-config --cflags json-c)
LDFLAGS += $(shell pkg-config --libs json-c)

Without pkgconfig, you would do something like this:

JSON_C_DIR=/path/to/json_c/install
CFLAGS += -I$(JSON_C_DIR)/include/json-c
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
Description
android_external_json-c
Readme 469 KiB
Languages
C 94.4%
M4 2%
Makefile 1.8%
HTML 1.5%
Shell 0.2%