tools/tiff2pdf.c:2021: error: Null Dereference
  pointer `tbc` last assigned on line 1997 could be null and is dereferenced at line 2021, column 6.

tools/tiff2pdf.c:1995:1: start of procedure t2p_read_tiff_size_tile()
1993. */
1994. 
1995. void t2p_read_tiff_size_tile(T2P* t2p, TIFF* input, ttile_t tile){
      ^
1996. 
1997. 	uint64* tbc = NULL;

tools/tiff2pdf.c:1997:2: 
1995. void t2p_read_tiff_size_tile(T2P* t2p, TIFF* input, ttile_t tile){
1996. 
1997. 	uint64* tbc = NULL;
       ^
1998. 	uint16 edge=0;
1999. #ifdef JPEG_SUPPORT

tools/tiff2pdf.c:1998:2: 
1996. 
1997. 	uint64* tbc = NULL;
1998. 	uint16 edge=0;
       ^
1999. #ifdef JPEG_SUPPORT
2000. 	unsigned char* jpt;

tools/tiff2pdf.c:2004:2: 
2002.         uint64 k;
2003. 
2004. 	edge |= t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
       ^
2005. 	edge |= t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
2006. 	

tools/tiff2pdf.c:2069:1: start of procedure t2p_tile_is_right_edge()
  2067.  */
  2068. 
  2069. int t2p_tile_is_right_edge(T2P_TILES tiles, ttile_t tile){
        ^
  2070. 
  2071. 	if( ((tile+1) % tiles.tiles_tilecountx == 0) 

tools/tiff2pdf.c:2071:7: Taking false branch
  2069. int t2p_tile_is_right_edge(T2P_TILES tiles, ttile_t tile){
  2070. 
  2071. 	if( ((tile+1) % tiles.tiles_tilecountx == 0) 
              ^
  2072. 		&& (tiles.tiles_edgetilewidth != 0) ){
  2073. 		return(1);

tools/tiff2pdf.c:2075:3: 
  2073. 		return(1);
  2074. 	} else {
  2075. 		return(0);
          ^
  2076. 	}
  2077. }

tools/tiff2pdf.c:2077:1: return from a call to t2p_tile_is_right_edge
  2075. 		return(0);
  2076. 	}
  2077. }
        ^
  2078. 
  2079. /*

tools/tiff2pdf.c:2005:2: 
2003. 
2004. 	edge |= t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
2005. 	edge |= t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
       ^
2006. 	
2007. 	if(t2p->pdf_transcode==T2P_TRANSCODE_RAW){

tools/tiff2pdf.c:2084:1: start of procedure t2p_tile_is_bottom_edge()
  2082.  */
  2083. 
  2084. int t2p_tile_is_bottom_edge(T2P_TILES tiles, ttile_t tile){
        ^
  2085. 
  2086. 	if( ((tile+1) > (tiles.tiles_tilecount-tiles.tiles_tilecountx) )

tools/tiff2pdf.c:2086:7: Taking false branch
  2084. int t2p_tile_is_bottom_edge(T2P_TILES tiles, ttile_t tile){
  2085. 
  2086. 	if( ((tile+1) > (tiles.tiles_tilecount-tiles.tiles_tilecountx) )
              ^
  2087. 		&& (tiles.tiles_edgetilelength != 0) ){
  2088. 		return(1);

tools/tiff2pdf.c:2090:3: 
  2088. 		return(1);
  2089. 	} else {
  2090. 		return(0);
          ^
  2091. 	}
  2092. }

tools/tiff2pdf.c:2092:1: return from a call to t2p_tile_is_bottom_edge
  2090. 		return(0);
  2091. 	}
  2092. }
        ^
  2093. 
  2094. /*

tools/tiff2pdf.c:2007:5: Taking true branch
2005. 	edge |= t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
2006. 	
2007. 	if(t2p->pdf_transcode==T2P_TRANSCODE_RAW){
          ^
2008. 		if(edge
2009. #if defined(JPEG_SUPPORT) || defined(OJPEG_SUPPORT)

tools/tiff2pdf.c:2008:6: Taking false branch
2006. 	
2007. 	if(t2p->pdf_transcode==T2P_TRANSCODE_RAW){
2008. 		if(edge
           ^
2009. #if defined(JPEG_SUPPORT) || defined(OJPEG_SUPPORT)
2010. 		&& !(t2p->pdf_compression==T2P_COMPRESS_JPEG)

tools/tiff2pdf.c:2020:4: 
2018. 			return;
2019. 		} else {
2020. 			TIFFGetField(input, TIFFTAG_TILEBYTECOUNTS, &tbc);
         ^
2021. 			k=tbc[tile];
2022. #ifdef OJPEG_SUPPORT

libtiff/tif_dir.c:1151:1: start of procedure TIFFGetField()
  1149.  * internal directory structure.
  1150.  */
  1151. int
        ^
  1152. TIFFGetField(TIFF* tif, uint32 tag, ...)
  1153. {

libtiff/tif_dir.c:1157:2: 
  1155. 	va_list ap;
  1156. 
  1157. 	va_start(ap, tag);
         ^
  1158. 	status = TIFFVGetField(tif, tag, ap);
  1159. 	va_end(ap);

libtiff/tif_dir.c:1158:2: Skipping TIFFVGetField(): empty list of specs
  1156. 
  1157. 	va_start(ap, tag);
  1158. 	status = TIFFVGetField(tif, tag, ap);
         ^
  1159. 	va_end(ap);
  1160. 	return (status);

libtiff/tif_dir.c:1159:2: 
  1157. 	va_start(ap, tag);
  1158. 	status = TIFFVGetField(tif, tag, ap);
  1159. 	va_end(ap);
         ^
  1160. 	return (status);
  1161. }

libtiff/tif_dir.c:1160:2: 
  1158. 	status = TIFFVGetField(tif, tag, ap);
  1159. 	va_end(ap);
  1160. 	return (status);
         ^
  1161. }
  1162. 

libtiff/tif_dir.c:1161:1: return from a call to TIFFGetField
  1159. 	va_end(ap);
  1160. 	return (status);
  1161. }
        ^
  1162. 
  1163. /*

tools/tiff2pdf.c:2021:4: 
2019. 		} else {
2020. 			TIFFGetField(input, TIFFTAG_TILEBYTECOUNTS, &tbc);
2021. 			k=tbc[tile];
         ^
2022. #ifdef OJPEG_SUPPORT
2023. 			if(t2p->tiff_compression==COMPRESSION_OJPEG){

void t2p_read_tiff_size_tile(T2P* t2p, TIFF* input, ttile_t tile){
	uint64* tbc = NULL;
	uint16 edge=0;
#ifdef JPEG_SUPPORT
	unsigned char* jpt;
#endif
        uint64 k;
	edge |= t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
	edge |= t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile);
	if(t2p->pdf_transcode==T2P_TRANSCODE_RAW){
		if(edge
#if defined(JPEG_SUPPORT) || defined(OJPEG_SUPPORT)
		&& !(t2p->pdf_compression==T2P_COMPRESS_JPEG)
#endif
		){
			t2p->tiff_datasize=TIFFTileSize(input);
			if (t2p->tiff_datasize == 0) {
				t2p->t2p_error = T2P_ERR_ERROR;
			}
			return;
		} else {
			TIFFGetField(input, TIFFTAG_TILEBYTECOUNTS, &tbc);
			k=tbc[tile];
#ifdef OJPEG_SUPPORT
			if(t2p->tiff_compression==COMPRESSION_OJPEG){
			  	k = checkAdd64(k, 2048, t2p);
			}
#endif
#ifdef JPEG_SUPPORT
			if(t2p->tiff_compression==COMPRESSION_JPEG) {
				uint32 count = 0;
				if(TIFFGetField(input, TIFFTAG_JPEGTABLES, &count, &jpt)!=0){
					if(count > 4){
						k = checkAdd64(k, count, t2p);
						k -= 2;
					}
				}
			}
#endif
			t2p->tiff_datasize = (tsize_t) k;
			if ((uint64) t2p->tiff_datasize != k) {
				TIFFError(TIFF2PDF_MODULE, "Integer overflow");
				t2p->t2p_error = T2P_ERR_ERROR;
			}
			return;
		}
	}
	k = TIFFTileSize(input);
	if(t2p->tiff_planar==PLANARCONFIG_SEPARATE){
		k = checkMultiply64(k, t2p->tiff_samplesperpixel, t2p);
	}
	if (k == 0) {
		t2p->t2p_error = T2P_ERR_ERROR;
	}
	t2p->tiff_datasize = (tsize_t) k;
	if ((uint64) t2p->tiff_datasize != k) {
		TIFFError(TIFF2PDF_MODULE, "Integer overflow");
		t2p->t2p_error = T2P_ERR_ERROR;
	}
	return;
}
['void t2p_read_tiff_size_tile(T2P* t2p, TIFF* input, ttile_t tile){\n\tuint64* tbc = NULL;\n\tuint16 edge=0;\n#ifdef JPEG_SUPPORT\n\tunsigned char* jpt;\n#endif\n        uint64 k;\n\tedge |= t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile);\n\tedge |= t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile);\n\tif(t2p->pdf_transcode==T2P_TRANSCODE_RAW){\n\t\tif(edge\n#if defined(JPEG_SUPPORT) || defined(OJPEG_SUPPORT)\n\t\t&& !(t2p->pdf_compression==T2P_COMPRESS_JPEG)\n#endif\n\t\t){\n\t\t\tt2p->tiff_datasize=TIFFTileSize(input);\n\t\t\tif (t2p->tiff_datasize == 0) {\n\t\t\t\tt2p->t2p_error = T2P_ERR_ERROR;\n\t\t\t}\n\t\t\treturn;\n\t\t} else {\n\t\t\tTIFFGetField(input, TIFFTAG_TILEBYTECOUNTS, &tbc);\n\t\t\tk=tbc[tile];\n#ifdef OJPEG_SUPPORT\n\t\t\tif(t2p->tiff_compression==COMPRESSION_OJPEG){\n\t\t\t  \tk = checkAdd64(k, 2048, t2p);\n\t\t\t}\n#endif\n#ifdef JPEG_SUPPORT\n\t\t\tif(t2p->tiff_compression==COMPRESSION_JPEG) {\n\t\t\t\tuint32 count = 0;\n\t\t\t\tif(TIFFGetField(input, TIFFTAG_JPEGTABLES, &count, &jpt)!=0){\n\t\t\t\t\tif(count > 4){\n\t\t\t\t\t\tk = checkAdd64(k, count, t2p);\n\t\t\t\t\t\tk -= 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n#endif\n\t\t\tt2p->tiff_datasize = (tsize_t) k;\n\t\t\tif ((uint64) t2p->tiff_datasize != k) {\n\t\t\t\tTIFFError(TIFF2PDF_MODULE, "Integer overflow");\n\t\t\t\tt2p->t2p_error = T2P_ERR_ERROR;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t}\n\tk = TIFFTileSize(input);\n\tif(t2p->tiff_planar==PLANARCONFIG_SEPARATE){\n\t\tk = checkMultiply64(k, t2p->tiff_samplesperpixel, t2p);\n\t}\n\tif (k == 0) {\n\t\tt2p->t2p_error = T2P_ERR_ERROR;\n\t}\n\tt2p->tiff_datasize = (tsize_t) k;\n\tif ((uint64) t2p->tiff_datasize != k) {\n\t\tTIFFError(TIFF2PDF_MODULE, "Integer overflow");\n\t\tt2p->t2p_error = T2P_ERR_ERROR;\n\t}\n\treturn;\n}', 'int t2p_tile_is_right_edge(T2P_TILES tiles, ttile_t tile){\n\tif( ((tile+1) % tiles.tiles_tilecountx == 0)\n\t\t&& (tiles.tiles_edgetilewidth != 0) ){\n\t\treturn(1);\n\t} else {\n\t\treturn(0);\n\t}\n}', 'int t2p_tile_is_bottom_edge(T2P_TILES tiles, ttile_t tile){\n\tif( ((tile+1) > (tiles.tiles_tilecount-tiles.tiles_tilecountx) )\n\t\t&& (tiles.tiles_edgetilelength != 0) ){\n\t\treturn(1);\n\t} else {\n\t\treturn(0);\n\t}\n}', 'int\nTIFFGetField(TIFF* tif, uint32 tag, ...)\n{\n\tint status;\n\tva_list ap;\n\tva_start(ap, tag);\n\tstatus = TIFFVGetField(tif, tag, ap);\n\tva_end(ap);\n\treturn (status);\n}']