mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-24 10:38:53 +00:00
Update jpeglib's format_message() error routine to use snprintf() for buffer security
This commit is contained in:
parent
52dd6193bf
commit
16077c7cd6
3 changed files with 8 additions and 8 deletions
|
@ -68,7 +68,7 @@ error_exit( j_common_ptr cinfo )
|
|||
char buffer[JMSG_LENGTH_MAX];
|
||||
|
||||
/* Create the message */
|
||||
( *cinfo->err->format_message )( cinfo, buffer );
|
||||
( *cinfo->err->format_message )( cinfo, buffer, sizeof( buffer ) );
|
||||
|
||||
/* Let the memory manager delete any temp files before we die */
|
||||
jpeg_destroy( cinfo );
|
||||
|
@ -89,7 +89,7 @@ output_message( j_common_ptr cinfo )
|
|||
char buffer[JMSG_LENGTH_MAX];
|
||||
|
||||
/* Create the message */
|
||||
( *cinfo->err->format_message )( cinfo, buffer );
|
||||
( *cinfo->err->format_message )( cinfo, buffer, sizeof( buffer ) );
|
||||
|
||||
/* Send it to stderr, adding a newline */
|
||||
jpg_Printf( "%s\n", buffer );
|
||||
|
@ -144,7 +144,7 @@ emit_message( j_common_ptr cinfo, int msg_level )
|
|||
*/
|
||||
|
||||
METHODDEF void
|
||||
format_message( j_common_ptr cinfo, char* buffer )
|
||||
format_message( j_common_ptr cinfo, char* buffer, int bufsize )
|
||||
{
|
||||
struct jpeg_error_mgr* err = cinfo->err;
|
||||
int msg_code = err->msg_code;
|
||||
|
@ -190,11 +190,11 @@ format_message( j_common_ptr cinfo, char* buffer )
|
|||
/* Format the message into the passed buffer */
|
||||
if( isstring )
|
||||
{
|
||||
sprintf( buffer, msgtext, err->msg_parm.s );
|
||||
snprintf( buffer, bufsize, msgtext, err->msg_parm.s );
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf( buffer, msgtext,
|
||||
snprintf( buffer, bufsize, msgtext,
|
||||
err->msg_parm.i[0], err->msg_parm.i[1],
|
||||
err->msg_parm.i[2], err->msg_parm.i[3],
|
||||
err->msg_parm.i[4], err->msg_parm.i[5],
|
||||
|
|
|
@ -646,7 +646,7 @@ struct jpeg_error_mgr
|
|||
/* Routine that actually outputs a trace or error message */
|
||||
JMETHOD( void, output_message, ( j_common_ptr cinfo ) );
|
||||
/* Format a message string for the most recent JPEG error or message */
|
||||
JMETHOD( void, format_message, ( j_common_ptr cinfo, char* buffer ) );
|
||||
JMETHOD( void, format_message, ( j_common_ptr cinfo, char* buffer, int bufsize ) );
|
||||
#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */
|
||||
/* Reset error state variables at start of a new image */
|
||||
JMETHOD( void, reset_error_mgr, ( j_common_ptr cinfo ) );
|
||||
|
|
|
@ -43,13 +43,13 @@ These are the static callback functions the jpeg library calls
|
|||
void swf_jpeg_error_exit( jpeg_common_struct* cinfo )
|
||||
{
|
||||
char buffer[JMSG_LENGTH_MAX] = {0};
|
||||
( *cinfo->err->format_message )( cinfo, buffer );
|
||||
( *cinfo->err->format_message )( cinfo, buffer, sizeof( buffer ) );
|
||||
throw idException( buffer );
|
||||
}
|
||||
void swf_jpeg_output_message( jpeg_common_struct* cinfo )
|
||||
{
|
||||
char buffer[JMSG_LENGTH_MAX] = {0};
|
||||
( *cinfo->err->format_message )( cinfo, buffer );
|
||||
( *cinfo->err->format_message )( cinfo, buffer, sizeof( buffer ) );
|
||||
idLib::Printf( "%s\n", buffer );
|
||||
}
|
||||
void swf_jpeg_init_source( jpeg_decompress_struct* cinfo )
|
||||
|
|
Loading…
Reference in a new issue