Check the malloc return value (Dmitry V. Levin).
This commit is contained in:
parent
7a8b7651cd
commit
e921b6d3a8
@ -1,5 +1,5 @@
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* $Id: tiffset.c,v 1.6 2004-06-07 09:05:09 dron Exp $
|
* $Id: tiffset.c,v 1.7 2004-10-26 18:22:47 dron Exp $
|
||||||
*
|
*
|
||||||
* Project: libtiff tools
|
* Project: libtiff tools
|
||||||
* Purpose: Mainline for setting metadata in existing TIFF files.
|
* Purpose: Mainline for setting metadata in existing TIFF files.
|
||||||
@ -28,26 +28,6 @@
|
|||||||
* OF THIS SOFTWARE.
|
* OF THIS SOFTWARE.
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*
|
*
|
||||||
* $Log: tiffset.c,v $
|
|
||||||
* Revision 1.6 2004-06-07 09:05:09 dron
|
|
||||||
* Forgotten debug output removed.
|
|
||||||
*
|
|
||||||
* Revision 1.5 2004/06/05 09:05:26 dron
|
|
||||||
* tiffset now can set any libtiff supported tags. Tags can be supplied by the
|
|
||||||
* mnemonic name or number.
|
|
||||||
*
|
|
||||||
* Revision 1.4 2004/05/03 16:39:11 warmerda
|
|
||||||
* Increase -sf buffer size.
|
|
||||||
*
|
|
||||||
* Revision 1.3 2002/01/16 17:50:05 warmerda
|
|
||||||
* Fix bug in error output.
|
|
||||||
*
|
|
||||||
* Revision 1.2 2001/09/26 17:42:18 warmerda
|
|
||||||
* added TIFFRewriteDirectory
|
|
||||||
*
|
|
||||||
* Revision 1.1 2001/03/02 04:58:53 warmerda
|
|
||||||
* New
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -70,11 +50,12 @@ usage(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; usageMsg[i]; i++)
|
for (i = 0; usageMsg[i]; i++)
|
||||||
fprintf(stderr, "%s", usageMsg[i]);
|
fprintf(stderr, "%s\n", usageMsg[i]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TIFFFieldInfo *GetField(TIFF *tiff, const char *tagname)
|
static const TIFFFieldInfo *
|
||||||
|
GetField(TIFF *tiff, const char *tagname)
|
||||||
{
|
{
|
||||||
const TIFFFieldInfo *fip;
|
const TIFFFieldInfo *fip;
|
||||||
|
|
||||||
@ -110,9 +91,11 @@ main(int argc, char* argv[])
|
|||||||
if( strcmp(argv[arg_index],"-s") == 0 && arg_index < argc-3 )
|
if( strcmp(argv[arg_index],"-s") == 0 && arg_index < argc-3 )
|
||||||
{
|
{
|
||||||
const TIFFFieldInfo *fip;
|
const TIFFFieldInfo *fip;
|
||||||
|
const char *tagname;
|
||||||
|
|
||||||
arg_index++;
|
arg_index++;
|
||||||
fip = GetField(tiff, argv[arg_index]);
|
tagname = argv[arg_index];
|
||||||
|
fip = GetField(tiff, tagname);
|
||||||
|
|
||||||
if (!fip)
|
if (!fip)
|
||||||
return -3;
|
return -3;
|
||||||
@ -120,11 +103,9 @@ main(int argc, char* argv[])
|
|||||||
arg_index++;
|
arg_index++;
|
||||||
if (fip->field_type == TIFF_ASCII)
|
if (fip->field_type == TIFF_ASCII)
|
||||||
{
|
{
|
||||||
TIFFSetField(tiff, fip->field_tag, argv[arg_index]);
|
if (TIFFSetField(tiff, fip->field_tag, argv[arg_index]) != 1)
|
||||||
{
|
|
||||||
fprintf( stderr, "Failed to set %s=%s\n",
|
fprintf( stderr, "Failed to set %s=%s\n",
|
||||||
fip->field_name, argv[arg_index] );
|
fip->field_name, argv[arg_index] );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (fip->field_writecount > 0)
|
else if (fip->field_writecount > 0)
|
||||||
@ -143,8 +124,13 @@ main(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
array = malloc(fip->field_writecount
|
array = _TIFFmalloc(fip->field_writecount
|
||||||
* TIFFDataWidth(fip->field_type));
|
* TIFFDataWidth(fip->field_type));
|
||||||
|
if (!array)
|
||||||
|
{
|
||||||
|
fprintf( stderr, "No space for %s tag\n", tagname);
|
||||||
|
return -4;
|
||||||
|
}
|
||||||
|
|
||||||
switch (fip->field_type)
|
switch (fip->field_type)
|
||||||
{
|
{
|
||||||
@ -191,7 +177,7 @@ main(int argc, char* argv[])
|
|||||||
fprintf( stderr, "Failed to set %s\n", fip->field_name );
|
fprintf( stderr, "Failed to set %s\n", fip->field_name );
|
||||||
arg_index += fip->field_writecount;
|
arg_index += fip->field_writecount;
|
||||||
|
|
||||||
free(array);
|
_TIFFfree(array);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( strcmp(argv[arg_index],"-sf") == 0 && arg_index < argc-3 )
|
else if( strcmp(argv[arg_index],"-sf") == 0 && arg_index < argc-3 )
|
||||||
@ -235,7 +221,7 @@ main(int argc, char* argv[])
|
|||||||
fip->field_name, argv[arg_index] );
|
fip->field_name, argv[arg_index] );
|
||||||
}
|
}
|
||||||
|
|
||||||
free( text );
|
_TIFFfree( text );
|
||||||
arg_index++;
|
arg_index++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user