command line: avoid arg_opts buffer overflow if -d/i used without space before arg

This commit is contained in:
gitlost 2020-08-05 15:58:21 +01:00
parent e5c6f99b04
commit 980e039743
3 changed files with 4 additions and 4 deletions

View File

@ -240,7 +240,7 @@ INTERNAL int is_extendable(const int symbology) {
}
/* Indicates which symbols can have composite 2D component data */
INTERNAL int is_composite(int symbology) {
INTERNAL int is_composite(const int symbology) {
return symbology >= BARCODE_EANX_CC && symbology <= BARCODE_DBAR_EXPSTK_CC;
}

View File

@ -87,7 +87,7 @@ extern "C" {
INTERNAL int is_stackable(const int symbology);
INTERNAL int is_extendable(const int symbology);
INTERNAL int is_composite(const int symbology);
INTERNAL int istwodigits(const unsigned char source[], int length, const int position);
INTERNAL int istwodigits(const unsigned char source[], const int length, const int position);
INTERNAL unsigned int decode_utf8(unsigned int *state, unsigned int *codep, const unsigned char byte);
INTERNAL int utf8_to_unicode(struct zint_symbol *symbol, const unsigned char source[], unsigned int vals[], size_t *length, int disallow_4byte);
INTERNAL void set_minimum_height(struct zint_symbol *symbol, const int min_height);

View File

@ -515,9 +515,9 @@ int main(int argc, char **argv) {
char *outfile_extension;
int data_arg_num = 0;
#ifndef _MSC_VER
arg_opt arg_opts[(argc + 1) / 2];
arg_opt arg_opts[argc];
#else
arg_opt *arg_opts = (arg_opt *) _alloca(((argc + 1) / 2) * sizeof(arg_opt));
arg_opt *arg_opts = (arg_opt *) _alloca(argc * sizeof(arg_opt));
#endif
my_symbol = ZBarcode_Create();