tools/tiffcrop.c:7190: error: Null Dereference
  pointer `sect_buff` last assigned on line 7185 could be null and is dereferenced by call to `_TIFFmemset()` at line 7190, column 7.

tools/tiffcrop.c:7162:1: start of procedure createImageSection()
7160. 
7161. /* Create a buffer to write one section at a time */
7162. static int
      ^
7163. createImageSection(uint32 sectsize, unsigned char **sect_buff_ptr)
7164.   {

tools/tiffcrop.c:7165:3: 
7163. createImageSection(uint32 sectsize, unsigned char **sect_buff_ptr)
7164.   {
7165.   unsigned  char *sect_buff = NULL;
        ^
7166.   unsigned  char *new_buff  = NULL;
7167.   static    uint32  prev_sectsize = 0;

tools/tiffcrop.c:7166:3: 
7164.   {
7165.   unsigned  char *sect_buff = NULL;
7166.   unsigned  char *new_buff  = NULL;
        ^
7167.   static    uint32  prev_sectsize = 0;
7168.   

tools/tiffcrop.c:7167:3: 
7165.   unsigned  char *sect_buff = NULL;
7166.   unsigned  char *new_buff  = NULL;
7167.   static    uint32  prev_sectsize = 0;
        ^
7168.   
7169.   sect_buff = *sect_buff_ptr;

tools/tiffcrop.c:7169:3: 
7167.   static    uint32  prev_sectsize = 0;
7168.   
7169.   sect_buff = *sect_buff_ptr;
        ^
7170. 
7171.   if (!sect_buff)

tools/tiffcrop.c:7171:8: Taking false branch
7169.   sect_buff = *sect_buff_ptr;
7170. 
7171.   if (!sect_buff)
             ^
7172.     {
7173.     sect_buff = (unsigned char *)_TIFFmalloc(sectsize);

tools/tiffcrop.c:7179:9: Taking true branch
7177.   else
7178.     {
7179.     if (prev_sectsize < sectsize)
              ^
7180.       {
7181.       new_buff = _TIFFrealloc(sect_buff, sectsize);

tools/tiffcrop.c:7181:7: 
7179.     if (prev_sectsize < sectsize)
7180.       {
7181.       new_buff = _TIFFrealloc(sect_buff, sectsize);
            ^
7182.       if (!new_buff)
7183.         {

libtiff/tif_unix.c:265:1: start of procedure _TIFFrealloc()
  263. }
  264. 
  265. void*
       ^
  266. _TIFFrealloc(void* p, tmsize_t s)
  267. {

libtiff/tif_unix.c:268:2: 
  266. _TIFFrealloc(void* p, tmsize_t s)
  267. {
  268. 	return (realloc(p, (size_t) s));
        ^
  269. }
  270. 

libtiff/tif_unix.c:269:1: return from a call to _TIFFrealloc
  267. {
  268. 	return (realloc(p, (size_t) s));
  269. }
       ^
  270. 
  271. void

tools/tiffcrop.c:7182:12: Taking true branch
7180.       {
7181.       new_buff = _TIFFrealloc(sect_buff, sectsize);
7182.       if (!new_buff)
                 ^
7183.         {
7184. 	free (sect_buff);

tools/tiffcrop.c:7184:2: 
7182.       if (!new_buff)
7183.         {
7184. 	free (sect_buff);
       ^
7185.         sect_buff = (unsigned char *)_TIFFmalloc(sectsize);
7186.         }

tools/tiffcrop.c:7185:9: 
7183.         {
7184. 	free (sect_buff);
7185.         sect_buff = (unsigned char *)_TIFFmalloc(sectsize);
              ^
7186.         }
7187.       else

libtiff/tif_unix.c:253:1: start of procedure _TIFFmalloc()
  251. #endif
  252. 
  253. void*
       ^
  254. _TIFFmalloc(tmsize_t s)
  255. {

libtiff/tif_unix.c:256:2: 
  254. _TIFFmalloc(tmsize_t s)
  255. {
  256. 	return (malloc((size_t) s));
        ^
  257. }
  258. 

libtiff/tif_unix.c:257:1: return from a call to _TIFFmalloc
  255. {
  256. 	return (malloc((size_t) s));
  257. }
       ^
  258. 
  259. void

tools/tiffcrop.c:7190:7: 
7188.         sect_buff = new_buff;
7189. 
7190.       _TIFFmemset(sect_buff, 0, sectsize);
            ^
7191.       }
7192.     }

libtiff/tif_unix.c:271:1: start of procedure _TIFFmemset()
  269. }
  270. 
  271. void
       ^
  272. _TIFFmemset(void* p, int v, tmsize_t c)
  273. {

libtiff/tif_unix.c:274:2: 
  272. _TIFFmemset(void* p, int v, tmsize_t c)
  273. {
  274. 	memset(p, v, (size_t) c);
        ^
  275. }
  276. 

libtiff/tif_unix.c:275:1: return from a call to _TIFFmemset
  273. {
  274. 	memset(p, v, (size_t) c);
  275. }
       ^
  276. 
  277. void

static int
createImageSection(uint32 sectsize, unsigned char **sect_buff_ptr)
  {
  unsigned  char *sect_buff = NULL;
  unsigned  char *new_buff  = NULL;
  static    uint32  prev_sectsize = 0;
  sect_buff = *sect_buff_ptr;
  if (!sect_buff)
    {
    sect_buff = (unsigned char *)_TIFFmalloc(sectsize);
    *sect_buff_ptr = sect_buff;
    _TIFFmemset(sect_buff, 0, sectsize);
    }
  else
    {
    if (prev_sectsize < sectsize)
      {
      new_buff = _TIFFrealloc(sect_buff, sectsize);
      if (!new_buff)
        {
	free (sect_buff);
        sect_buff = (unsigned char *)_TIFFmalloc(sectsize);
        }
      else
        sect_buff = new_buff;
      _TIFFmemset(sect_buff, 0, sectsize);
      }
    }
  if (!sect_buff)
    {
    TIFFError("createImageSection", "Unable to allocate/reallocate section buffer");
    return (-1);
    }
  prev_sectsize = sectsize;
  *sect_buff_ptr = sect_buff;
  return (0);
  }
['static int\ncreateImageSection(uint32 sectsize, unsigned char **sect_buff_ptr)\n  {\n  unsigned  char *sect_buff = NULL;\n  unsigned  char *new_buff  = NULL;\n  static    uint32  prev_sectsize = 0;\n  sect_buff = *sect_buff_ptr;\n  if (!sect_buff)\n    {\n    sect_buff = (unsigned char *)_TIFFmalloc(sectsize);\n    *sect_buff_ptr = sect_buff;\n    _TIFFmemset(sect_buff, 0, sectsize);\n    }\n  else\n    {\n    if (prev_sectsize < sectsize)\n      {\n      new_buff = _TIFFrealloc(sect_buff, sectsize);\n      if (!new_buff)\n        {\n\tfree (sect_buff);\n        sect_buff = (unsigned char *)_TIFFmalloc(sectsize);\n        }\n      else\n        sect_buff = new_buff;\n      _TIFFmemset(sect_buff, 0, sectsize);\n      }\n    }\n  if (!sect_buff)\n    {\n    TIFFError("createImageSection", "Unable to allocate/reallocate section buffer");\n    return (-1);\n    }\n  prev_sectsize = sectsize;\n  *sect_buff_ptr = sect_buff;\n  return (0);\n  }', 'void*\n_TIFFrealloc(void* p, tmsize_t s)\n{\n\treturn (realloc(p, (size_t) s));\n}', 'void*\n_TIFFmalloc(tmsize_t s)\n{\n\treturn (malloc((size_t) s));\n}', 'void\n_TIFFmemset(void* p, int v, tmsize_t c)\n{\n\tmemset(p, v, (size_t) c);\n}']