projects
/
openjpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
jp3d/jpwl convert: fix write stack buffer overflow
[openjpeg.git]
/
src
/
bin
/
jp3d
/
convert.c
diff --git
a/src/bin/jp3d/convert.c
b/src/bin/jp3d/convert.c
index 492b193bfe36ae15e90cec3ec247348d1c212eca..acad8f82a84fc4f64d2beef67a4ddb9c8122ed29 100644
(file)
--- a/
src/bin/jp3d/convert.c
+++ b/
src/bin/jp3d/convert.c
@@
-9,7
+9,7
@@
* Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe
* Copyright (c) 2005, Herve Drolon, FreeImage Team
* Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
* Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe
* Copyright (c) 2005, Herve Drolon, FreeImage Team
* Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
- * Copyright (c) 2006, M
�nica D�ez Garc�
a, Image Processing Laboratory, University of Valladolid, Spain
+ * Copyright (c) 2006, M
ónica Díez Garcí
a, Image Processing Laboratory, University of Valladolid, Spain
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@
-193,7
+193,7
@@
opj_volume_t* pgxtovolume(char *relpath, opj_cparameters_t *parameters)
memset(pgxfiles, 0, MAX_SLICES * MAX_PATH * sizeof(char));
memset(&cmptparm, 0, sizeof(opj_volume_cmptparm_t));
memset(pgxfiles, 0, MAX_SLICES * MAX_PATH * sizeof(char));
memset(&cmptparm, 0, sizeof(opj_volume_cmptparm_t));
- /* Separaci
�n del caso de un �
nico slice frente al de muchos */
+ /* Separaci
ón del caso de un ú
nico slice frente al de muchos */
if ((tmp = strrchr(relpath, '-')) == NULL) {
/*fprintf(stdout,"[INFO] A volume of only one slice....\n");*/
sliceno = 1;
if ((tmp = strrchr(relpath, '-')) == NULL) {
/*fprintf(stdout,"[INFO] A volume of only one slice....\n");*/
sliceno = 1;
@@
-297,8
+297,8
@@
opj_volume_t* pgxtovolume(char *relpath, opj_cparameters_t *parameters)
fprintf(stdout, "[INFO] Loading %s \n", pgxfiles[pos]);
fseek(f, 0, SEEK_SET);
fprintf(stdout, "[INFO] Loading %s \n", pgxfiles[pos]);
fseek(f, 0, SEEK_SET);
- fscanf(f, "PG%
[ \t]%c%c%[ \t+-]%d%[ \t]%d%[ \t]%d", temp, &endian1, &endian2
,
- signtmp, &prec, temp, &w, temp, &h);
+ fscanf(f, "PG%
31[ \t]%c%c%31[ \t+-]%d%31[ \t]%d%31[ \t]%d", temp, &endian1
,
+
&endian2,
signtmp, &prec, temp, &w, temp, &h);
i = 0;
sign = '+';
i = 0;
sign = '+';
@@
-316,6
+316,7
@@
opj_volume_t* pgxtovolume(char *relpath, opj_cparameters_t *parameters)
cmptparm.bigendian = 0;
} else {
fprintf(stdout, "[ERROR] Bad pgx header, please check input file\n");
cmptparm.bigendian = 0;
} else {
fprintf(stdout, "[ERROR] Bad pgx header, please check input file\n");
+ fclose(f);
return NULL;
}
return NULL;
}
@@
-787,7
+788,7
@@
int volumetobin(opj_volume_t * volume, char *outfile)
fclose(fdest);
fclose(fdest);
- s
printf(name
, "%s.img", outfile);
+ s
nprintf(name, sizeof(name)
, "%s.img", outfile);
fimgdest = fopen(name, "w");
if (!fimgdest) {
fprintf(stdout, "[ERROR] Failed to open %s for writing\n", name);
fimgdest = fopen(name, "w");
if (!fimgdest) {
fprintf(stdout, "[ERROR] Failed to open %s for writing\n", name);