summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2017-01-03 14:37:26 +0000
committerRobin Watts <robin.watts@artifex.com>2017-01-03 15:25:07 +0000
commit2f45ea017e9691c2b817884746306d27e06e0199 (patch)
treec6e338f6934bfecdb229241b3543ef1bde42f112
parent8071bb2950068a3c6a1b5a405d16548177503a14 (diff)
downloadghostpdl-2f45ea017e9691c2b817884746306d27e06e0199.tar.gz
Windows gs: Avoid unininitialised read.
-rw-r--r--pcl/pl/plwmainc.c4
-rw-r--r--psi/dpmain.c4
-rw-r--r--psi/dwmain.c4
-rw-r--r--psi/dwmainc.c4
-rw-r--r--psi/dxmain.c4
5 files changed, 10 insertions, 10 deletions
diff --git a/pcl/pl/plwmainc.c b/pcl/pl/plwmainc.c
index aa78fd201..259589e6d 100644
--- a/pcl/pl/plwmainc.c
+++ b/pcl/pl/plwmainc.c
@@ -420,11 +420,11 @@ main_utf8(int argc, char *argv[])
DISPLAY_DEPTH_4 | DISPLAY_BIGENDIAN | DISPLAY_BOTTOMFIRST;
sprintf(dformat, "-dDisplayFormat=%d", format);
nargc = argc + 2;
- nargv = (char **)malloc((nargc + 1) * sizeof(char *));
+ nargv = (char **)malloc(nargc * sizeof(char *));
nargv[0] = argv[0];
nargv[1] = dformat;
nargv[2] = ddpi;
- memcpy(&nargv[3], &argv[1], argc * sizeof(char *));
+ memcpy(&nargv[3], &argv[1], (argc-1) * sizeof(char *));
}
code = pl_main_aux(nargc, nargv, &display);
diff --git a/psi/dpmain.c b/psi/dpmain.c
index 6b683f6e8..1475070ae 100644
--- a/psi/dpmain.c
+++ b/psi/dpmain.c
@@ -1029,10 +1029,10 @@ main(int argc, char *argv[])
fprintf(stdout, "%s\n", dformat);
#endif
nargc = argc + 1;
- nargv = (char **)malloc((nargc + 1) * sizeof(char *));
+ nargv = (char **)malloc(nargc * sizeof(char *));
nargv[0] = argv[0];
nargv[1] = dformat;
- memcpy(&nargv[2], &argv[1], argc * sizeof(char *));
+ memcpy(&nargv[2], &argv[1], (argc-1) * sizeof(char *));
if ( (code = gsdll.new_instance(&instance, NULL)) == 0) {
gsdll.set_stdio(instance, gsdll_stdin, gsdll_stdout, gsdll_stderr);
diff --git a/psi/dwmain.c b/psi/dwmain.c
index 4d77d5776..6f902a93b 100644
--- a/psi/dwmain.c
+++ b/psi/dwmain.c
@@ -316,11 +316,11 @@ int new_main(int argc, char *argv[])
sprintf(dformat, "-dDisplayFormat=%d", format);
}
nargc = argc + 2;
- nargv = (char **)malloc((nargc + 1) * sizeof(char *));
+ nargv = (char **)malloc(nargc * sizeof(char *));
nargv[0] = argv[0];
nargv[1] = dformat;
nargv[2] = ddpi;
- memcpy(&nargv[3], &argv[1], argc * sizeof(char *));
+ memcpy(&nargv[3], &argv[1], (argc-1) * sizeof(char *));
#if defined(_MSC_VER) || defined(__BORLANDC__)
__try {
diff --git a/psi/dwmainc.c b/psi/dwmainc.c
index bd2a35fcb..c87a7f5af 100644
--- a/psi/dwmainc.c
+++ b/psi/dwmainc.c
@@ -663,14 +663,14 @@ static int main_utf8(int argc, char *argv[])
sprintf(dformat, "-dDisplayFormat=%d", format);
}
nargc = argc + 2;
- nargv = (char **)malloc((nargc + 1) * sizeof(char *));
+ nargv = (char **)malloc(nargc * sizeof(char *));
if (nargv == NULL) {
fprintf(stderr, "Malloc failure!\n");
} else {
nargv[0] = argv[0];
nargv[1] = dformat;
nargv[2] = ddpi;
- memcpy(&nargv[3], &argv[1], argc * sizeof(char *));
+ memcpy(&nargv[3], &argv[1], (argc-1) * sizeof(char *));
#endif
#if defined(_MSC_VER) || defined(__BORLANDC__)
diff --git a/psi/dxmain.c b/psi/dxmain.c
index 6cb03a98c..47fb7e725 100644
--- a/psi/dxmain.c
+++ b/psi/dxmain.c
@@ -1182,10 +1182,10 @@ int main(int argc, char *argv[])
DISPLAY_COLORS_RGB | DISPLAY_ALPHA_NONE | DISPLAY_DEPTH_8 |
DISPLAY_BIGENDIAN | DISPLAY_TOPFIRST);
nargc = argc + 1;
- nargv = (char **)malloc((nargc + 1) * sizeof(char *));
+ nargv = (char **)malloc(nargc * sizeof(char *));
nargv[0] = argv[0];
nargv[1] = dformat;
- memcpy(&nargv[2], &argv[1], argc * sizeof(char *));
+ memcpy(&nargv[2], &argv[1], (argc-1) * sizeof(char *));
/* run Ghostscript */
if ((code = gsapi_new_instance(&instance, NULL)) == 0) {