| diff --git a/third_party/libtiff/tif_dirread.c b/third_party/libtiff/tif_dirread.c |
| index 70611d037..a09ac44e1 100644 |
| --- a/third_party/libtiff/tif_dirread.c |
| +++ b/third_party/libtiff/tif_dirread.c |
| @@ -4181,7 +4181,8 @@ TIFFReadDirectory(TIFF* tif) |
| goto bad; |
| } |
| |
| - memcpy(new_sampleinfo, tif->tif_dir.td_sampleinfo, old_extrasamples * sizeof(uint16)); |
| + if (old_extrasamples > 0) |
| + memcpy(new_sampleinfo, tif->tif_dir.td_sampleinfo, old_extrasamples * sizeof(uint16)); |
| _TIFFsetShortArray(&tif->tif_dir.td_sampleinfo, new_sampleinfo, tif->tif_dir.td_extrasamples); |
| _TIFFfree(new_sampleinfo); |
| } |
| @@ -5773,7 +5774,8 @@ TIFFFetchStripThing(TIFF* tif, TIFFDirEntry* dir, uint32 nstrips, uint64** lpp) |
| _TIFFfree(data); |
| return(0); |
| } |
| - _TIFFmemcpy(resizeddata,data,(uint32)dir->tdir_count*sizeof(uint64)); |
| + if( dir->tdir_count ) |
| + _TIFFmemcpy(resizeddata,data, (uint32)dir->tdir_count * sizeof(uint64)); |
| _TIFFmemset(resizeddata+(uint32)dir->tdir_count,0,(nstrips-(uint32)dir->tdir_count)*sizeof(uint64)); |
| _TIFFfree(data); |
| data=resizeddata; |