Removed calls to strcat and strlen
Change-Id: Ie211561cdbce46b795dc3848387f6c0c11c7264c
diff --git a/decoder/ihevcd_version.c b/decoder/ihevcd_version.c
index b1b6e21..6ec5992 100644
--- a/decoder/ihevcd_version.c
+++ b/decoder/ihevcd_version.c
@@ -62,7 +62,7 @@
* Version string. First two digits signify major version and last two minor
* Increment major version for API change or major feature update
*/
-#define CODEC_RELEASE_VER "04.04"
+#define CODEC_RELEASE_VER "04.05"
/**
* Vendor name
*/
@@ -73,20 +73,11 @@
* Concatenates various strings to form a version string
*******************************************************************************
*/
+#define MAXVERSION_STRLEN 511
#define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \
- strcpy(version_string,"@(#)Id:"); \
- strcat(version_string,codec_name); \
- strcat(version_string,"_"); \
- strcat(version_string,codec_release_type); \
- strcat(version_string," Ver:"); \
- strcat(version_string,codec_release_ver); \
- strcat(version_string," Released by "); \
- strcat(version_string,codec_vendor); \
- strcat(version_string," Build: "); \
- strcat(version_string,__DATE__); \
- strcat(version_string," @ "); \
- strcat(version_string,__TIME__);
-
+ snprintf(version_string, MAXVERSION_STRLEN, \
+ "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s", \
+ codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__)
/**
*******************************************************************************
@@ -113,12 +104,13 @@
IV_API_CALL_STATUS_T ihevcd_get_version(CHAR *pc_version_string,
UWORD32 u4_version_buffer_size)
{
- CHAR ac_version_tmp[512];
+ CHAR ac_version_tmp[MAXVERSION_STRLEN + 1];
+ UWORD32 u4_len;
VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER, CODEC_VENDOR);
-
- if(u4_version_buffer_size >= (strlen(ac_version_tmp) + 1))
+ u4_len = strnlen(ac_version_tmp, MAXVERSION_STRLEN) + 1;
+ if(u4_version_buffer_size >= u4_len)
{
- memcpy(pc_version_string, ac_version_tmp, (strlen(ac_version_tmp) + 1));
+ memcpy(pc_version_string, ac_version_tmp, u4_len);
return IV_SUCCESS;
}
else