From 15520de3aa5100b148757e550b87a73798192b92 Mon Sep 17 00:00:00 2001 From: Tatsuya Kinoshita Date: Sun, 21 Mar 2021 12:51:08 +0900 Subject: Check STR_SIZE_MAX in Strcat_char --- Str.c | 2 -- Str.h | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Str.c b/Str.c index 804352c..9977c2d 100644 --- a/Str.c +++ b/Str.c @@ -21,12 +21,10 @@ #ifdef __EMX__ /* or include "fm.h" for HAVE_BCOPY? */ #include #endif -#include #include "Str.h" #include "myctype.h" #define INITIAL_STR_SIZE 32 -#define STR_SIZE_MAX (INT_MAX / 32) #ifdef STR_DEBUG /* This is obsolete, because "Str" can handle a '\0' character now. */ diff --git a/Str.h b/Str.h index 248815d..64e3dbc 100644 --- a/Str.h +++ b/Str.h @@ -17,6 +17,7 @@ #define GC_STR_H #include #include +#include #ifdef __EMX__ #define strcasecmp stricmp #define strncasecmp strnicmp @@ -66,7 +67,8 @@ Str Strfgetall(FILE *); void Strgrow(Str s); -#define Strcat_char(x,y) (((x)->length+1>=(x)->area_size)?Strgrow(x),0:0,(x)->ptr[(x)->length++]=(y),(x)->ptr[(x)->length]=0) +#define STR_SIZE_MAX (INT_MAX / 32) +#define Strcat_char(x,y) (((x)->length+1>=STR_SIZE_MAX)?0:(((x)->length+1>=(x)->area_size)?Strgrow(x),0:0,(x)->ptr[(x)->length++]=(y),(x)->ptr[(x)->length]=0)) #define Strcmp(x,y) strcmp((x)->ptr,(y)->ptr) #define Strcmp_charp(x,y) strcmp((x)->ptr,(y)) #define Strncmp(x,y,n) strncmp((x)->ptr,(y)->ptr,(n)) -- cgit v1.2.3