Fix Windows build; Add grayscale tests to Windows build; Add proper implementation of snprintf on Windows and use snprintf() in TurboJPEG library and tests instead of sprintf()
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@486 632fc199-4ca6-4c93-a231-07263d6284db
diff --git a/turbojpegl.c b/turbojpegl.c
index 4ae41b7..dc1578d 100644
--- a/turbojpegl.c
+++ b/turbojpegl.c
@@ -23,6 +23,7 @@
#include <jerror.h>
#include <setjmp.h>
#include "./turbojpeg.h"
+#include "./rrutil.h"
#include "transupp.h"
#ifndef min
@@ -82,9 +83,10 @@
{1, 8}
};
-#define _throw(c) {sprintf(lasterror, "%s", c); retval=-1; goto bailout;}
+#define _throw(c) {snprintf(lasterror, JMSG_LENGTH_MAX, "%s", c); \
+ retval=-1; goto bailout;}
#define checkhandle(h) jpgstruct *j=(jpgstruct *)h; \
- if(!j) {sprintf(lasterror, "Invalid handle"); return -1;}
+ if(!j) {snprintf(lasterror, JMSG_LENGTH_MAX, "Invalid handle"); return -1;}
// CO
@@ -124,7 +126,10 @@
{
jpgstruct *j=NULL;
if((j=(jpgstruct *)malloc(sizeof(jpgstruct)))==NULL)
- {sprintf(lasterror, "Memory allocation failure"); return NULL;}
+ {
+ snprintf(lasterror, JMSG_LENGTH_MAX, "Memory allocation failure");
+ return NULL;
+ }
memset(j, 0, sizeof(jpgstruct));
return _tjInitCompress(j);
}
@@ -408,7 +413,10 @@
{
jpgstruct *j;
if((j=(jpgstruct *)malloc(sizeof(jpgstruct)))==NULL)
- {sprintf(lasterror, "Memory allocation failure"); return NULL;}
+ {
+ snprintf(lasterror, JMSG_LENGTH_MAX, "Memory allocation failure");
+ return NULL;
+ }
memset(j, 0, sizeof(jpgstruct));
return _tjInitDecompress(j);
}
@@ -483,7 +491,8 @@
{
if(numscalingfactors==NULL)
{
- sprintf(lasterror, "Invalid argument in tjGetScalingFactors()");
+ snprintf(lasterror, JMSG_LENGTH_MAX,
+ "Invalid argument in tjGetScalingFactors()");
return NULL;
}
@@ -691,7 +700,10 @@
{
jpgstruct *j=NULL; tjhandle tj=NULL;
if((j=(jpgstruct *)malloc(sizeof(jpgstruct)))==NULL)
- {sprintf(lasterror, "Memory allocation failure"); return NULL;}
+ {
+ snprintf(lasterror, JMSG_LENGTH_MAX, "Memory allocation failure");
+ return NULL;
+ }
memset(j, 0, sizeof(jpgstruct));
tj=_tjInitCompress(j);
if(!tj) return NULL;
@@ -773,7 +785,8 @@
{
if((x%xinfo.iMCU_sample_width)!=0 || (y%xinfo.iMCU_sample_height)!=0)
{
- sprintf(lasterror, "To crop this JPEG image, x must be a multiple of %d and y must be a multiple\n"
+ snprintf(lasterror, JMSG_LENGTH_MAX,
+ "To crop this JPEG image, x must be a multiple of %d and y must be a multiple\n"
"of %d.\n", xinfo.iMCU_sample_width, xinfo.iMCU_sample_height);
retval=-1; goto bailout;
}