Fix buffer overflows in jp2/jpwl compress/decompress
This commit is contained in:
parent
d2205ba2ee
commit
5b54ae7e51
|
@ -654,9 +654,13 @@ static int parse_cmdline_encoder(int argc, char **argv,
|
||||||
case 'O': { /* output format */
|
case 'O': { /* output format */
|
||||||
char outformat[50];
|
char outformat[50];
|
||||||
char *of = opj_optarg;
|
char *of = opj_optarg;
|
||||||
|
if (strlen(opj_optarg) < sizeof(outformat)) {
|
||||||
sprintf(outformat, ".%s", of);
|
sprintf(outformat, ".%s", of);
|
||||||
img_fol->set_out_format = 1;
|
img_fol->set_out_format = 1;
|
||||||
parameters->cod_format = get_file_format(outformat);
|
parameters->cod_format = get_file_format(outformat);
|
||||||
|
} else {
|
||||||
|
parameters->cod_format = -1;
|
||||||
|
}
|
||||||
switch (parameters->cod_format) {
|
switch (parameters->cod_format) {
|
||||||
case J2K_CFMT:
|
case J2K_CFMT:
|
||||||
case JP2_CFMT:
|
case JP2_CFMT:
|
||||||
|
|
|
@ -662,9 +662,13 @@ int parse_cmdline_decoder(int argc, char **argv,
|
||||||
case 'O': { /* output format */
|
case 'O': { /* output format */
|
||||||
char outformat[50];
|
char outformat[50];
|
||||||
char *of = opj_optarg;
|
char *of = opj_optarg;
|
||||||
|
if (strlen(opj_optarg) < sizeof(outformat)) {
|
||||||
sprintf(outformat, ".%s", of);
|
sprintf(outformat, ".%s", of);
|
||||||
img_fol->set_out_format = 1;
|
img_fol->set_out_format = 1;
|
||||||
parameters->cod_format = get_file_format(outformat);
|
parameters->cod_format = get_file_format(outformat);
|
||||||
|
} else {
|
||||||
|
parameters->cod_format = -1;
|
||||||
|
}
|
||||||
switch (parameters->cod_format) {
|
switch (parameters->cod_format) {
|
||||||
case PGX_DFMT:
|
case PGX_DFMT:
|
||||||
img_fol->out_format = "pgx";
|
img_fol->out_format = "pgx";
|
||||||
|
|
|
@ -768,9 +768,13 @@ static int parse_cmdline_encoder(int argc, char **argv,
|
||||||
case 'O': { /* output format */
|
case 'O': { /* output format */
|
||||||
char outformat[50];
|
char outformat[50];
|
||||||
char *of = opj_optarg;
|
char *of = opj_optarg;
|
||||||
|
if (strlen(opj_optarg) < sizeof(outformat)) {
|
||||||
sprintf(outformat, ".%s", of);
|
sprintf(outformat, ".%s", of);
|
||||||
img_fol->set_out_format = 1;
|
img_fol->set_out_format = 1;
|
||||||
parameters->cod_format = get_file_format(outformat);
|
parameters->cod_format = get_file_format(outformat);
|
||||||
|
} else {
|
||||||
|
parameters->cod_format = -1;
|
||||||
|
}
|
||||||
switch (parameters->cod_format) {
|
switch (parameters->cod_format) {
|
||||||
case J2K_CFMT:
|
case J2K_CFMT:
|
||||||
case JP2_CFMT:
|
case JP2_CFMT:
|
||||||
|
|
|
@ -345,9 +345,13 @@ int parse_cmdline_decoder(int argc, char **argv, opj_dparameters_t *parameters,
|
||||||
case 'O': { /* output format */
|
case 'O': { /* output format */
|
||||||
char outformat[50];
|
char outformat[50];
|
||||||
char *of = opj_optarg;
|
char *of = opj_optarg;
|
||||||
|
if (strlen(opj_optarg) < sizeof(outformat)) {
|
||||||
sprintf(outformat, ".%s", of);
|
sprintf(outformat, ".%s", of);
|
||||||
img_fol->set_out_format = 1;
|
img_fol->set_out_format = 1;
|
||||||
parameters->cod_format = get_file_format(outformat);
|
parameters->cod_format = get_file_format(outformat);
|
||||||
|
} else {
|
||||||
|
parameters->cod_format = -1;
|
||||||
|
}
|
||||||
switch (parameters->cod_format) {
|
switch (parameters->cod_format) {
|
||||||
case PGX_DFMT:
|
case PGX_DFMT:
|
||||||
img_fol->out_format = "pgx";
|
img_fol->out_format = "pgx";
|
||||||
|
|
Loading…
Reference in New Issue