diff --git a/core/ContextBase.h b/core/ContextBase.h index d268f5ad..bdabf7bd 100644 --- a/core/ContextBase.h +++ b/core/ContextBase.h @@ -36,9 +36,6 @@ #include #include -#define MAX_XTRA_SERVER_URL_LENGTH (256) -#define MAX_SUPL_SERVER_URL_LENGTH (256) - /* GPS.conf support */ /* NOTE: the implementaiton of the parser casts number fields to 32 bit. To ensure all 'n' fields working, @@ -53,9 +50,9 @@ typedef struct loc_gps_cfg_s uint32_t CAPABILITIES; uint32_t LPP_PROFILE; uint32_t XTRA_VERSION_CHECK; - char XTRA_SERVER_1[MAX_XTRA_SERVER_URL_LENGTH]; - char XTRA_SERVER_2[MAX_XTRA_SERVER_URL_LENGTH]; - char XTRA_SERVER_3[MAX_XTRA_SERVER_URL_LENGTH]; + char XTRA_SERVER_1[LOC_MAX_PARAM_STRING]; + char XTRA_SERVER_2[LOC_MAX_PARAM_STRING]; + char XTRA_SERVER_3[LOC_MAX_PARAM_STRING]; uint32_t USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL; uint32_t NMEA_PROVIDER; uint32_t GPS_LOCK; @@ -65,10 +62,10 @@ typedef struct loc_gps_cfg_s uint32_t LPPE_CP_TECHNOLOGY; uint32_t LPPE_UP_TECHNOLOGY; uint32_t EXTERNAL_DR_ENABLED; - char SUPL_HOST[MAX_SUPL_SERVER_URL_LENGTH]; + char SUPL_HOST[LOC_MAX_PARAM_STRING]; uint32_t SUPL_PORT; uint32_t MODEM_TYPE; - char MO_SUPL_HOST[MAX_SUPL_SERVER_URL_LENGTH]; + char MO_SUPL_HOST[LOC_MAX_PARAM_STRING]; uint32_t MO_SUPL_PORT; } loc_gps_cfg_s_type; diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 8feedda9..57c19788 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -629,10 +629,7 @@ GnssAdapter::setSuplHostServer(const char* server, int port, LocServerType type) url.assign(serverUrl); if (LOC_AGPS_SUPL_SERVER == type) { - int nCharsToCopy = strlen(server) < MAX_SUPL_SERVER_URL_LENGTH ? - strlen(server) : (MAX_SUPL_SERVER_URL_LENGTH - 1); - strlcpy(ContextBase::mGps_conf.SUPL_HOST, server, nCharsToCopy); - ContextBase::mGps_conf.SUPL_HOST[nCharsToCopy] = '\0'; + strlcpy(ContextBase::mGps_conf.SUPL_HOST, server, LOC_MAX_PARAM_STRING); ContextBase::mGps_conf.SUPL_PORT = port; } diff --git a/utils/loc_cfg.cpp b/utils/loc_cfg.cpp index d319fb45..8624169a 100644 --- a/utils/loc_cfg.cpp +++ b/utils/loc_cfg.cpp @@ -141,7 +141,7 @@ int loc_set_config_entry(const loc_param_s_type* config_entry, loc_param_v_type* else { strlcpy((char*) config_entry->param_ptr, config_value->param_str_value, - LOC_MAX_PARAM_STRING + 1); + LOC_MAX_PARAM_STRING); } /* Log INI values */ LOC_LOGD("%s: PARAM %s = %s", __FUNCTION__, diff --git a/utils/loc_cfg.h b/utils/loc_cfg.h index f0334d0b..3057abc2 100644 --- a/utils/loc_cfg.h +++ b/utils/loc_cfg.h @@ -37,7 +37,7 @@ #include #define LOC_MAX_PARAM_NAME 80 -#define LOC_MAX_PARAM_STRING 170 +#define LOC_MAX_PARAM_STRING 172 #define LOC_MAX_PARAM_LINE (LOC_MAX_PARAM_NAME + LOC_MAX_PARAM_STRING) #define LOC_FEATURE_MODE_DISABLED "DISABLED" @@ -72,12 +72,12 @@ *============================================================================*/ typedef struct { - const char *param_name; - void *param_ptr; - uint8_t *param_set; /* indicate value set by config file */ - char param_type; /* 'n' for number, - 's' for string, - 'f' for double */ + const char *param_name; + void *param_ptr; /* for string type, buf size need to be LOC_MAX_PARAM_STRING */ + uint8_t *param_set; /* indicate value set by config file */ + char param_type; /* 'n' for number, + 's' for string, NOTE: buf size need to be LOC_MAX_PARAM_STRING + 'f' for double */ } loc_param_s_type; typedef enum {