From c44b979cb522aafbe88ab1bbeb7064b2a37f1660 Mon Sep 17 00:00:00 2001 From: "kp5.choi@samsung.com" Date: Mon, 9 Jun 2025 17:12:29 +0900 Subject: [PATCH 1/2] support 4-byte version number Signed-off-by: kp5.choi@samsung.com --- app/oapv_app_dec.c | 5 ++++- app/oapv_app_enc.c | 5 ++++- inc/oapv.h | 3 ++- src/oapv.c | 11 ++++++----- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/oapv_app_dec.c b/app/oapv_app_dec.c index 6d6234a..923f7d4 100644 --- a/app/oapv_app_dec.c +++ b/app/oapv_app_dec.c @@ -377,8 +377,11 @@ int main(int argc, const char **argv) memset(&ofrms, 0, sizeof(oapv_frms_t)); // print logo + char version[16]; + oapv_version(version, sizeof(version)); + logv2(" ____ ___ ___ _ __\n"); - logv2(" / __ \\___ ___ ___ / _ | / _ \\ | / / Decoder (v%s)\n", oapv_version()); + logv2(" / __ \\___ ___ ___ / _ | / _ \\ | / / Decoder (v%s)\n", version); logv2("/ /_/ / _ \\/ -_) _ \\/ __ |/ ___/ |/ / \n"); logv2("\\____/ .__/\\__/_//_/_/ |_/_/ |___/ \n"); logv2(" /_/ \n"); diff --git a/app/oapv_app_enc.c b/app/oapv_app_enc.c index 12cc459..3db5176 100644 --- a/app/oapv_app_enc.c +++ b/app/oapv_app_enc.c @@ -598,8 +598,11 @@ int main(int argc, const char **argv) const int num_frames = MAX_NUM_FRMS; // number of frames in an access unit // print logo + char version[16]; + oapv_version(version, sizeof(version)); + logv2(" ____ ___ ___ _ __\n"); - logv2(" / __ \\___ ___ ___ / _ | / _ \\ | / / Encoder (v%s)\n", oapv_version()); + logv2(" / __ \\___ ___ ___ / _ | / _ \\ | / / Encoder (v%s)\n", version); logv2("/ /_/ / _ \\/ -_) _ \\/ __ |/ ___/ |/ / \n"); logv2("\\____/ .__/\\__/_//_/_/ |_/_/ |___/ \n"); logv2(" /_/ \n"); diff --git a/inc/oapv.h b/inc/oapv.h index 7616759..e5b7abf 100644 --- a/inc/oapv.h +++ b/inc/oapv.h @@ -680,7 +680,8 @@ OAPV_EXPORT int oapvd_info(void *au, int au_size, oapv_au_info_t *aui); /***************************************************************************** * openapv version *****************************************************************************/ -OAPV_EXPORT const char *oapv_version(void); +OAPV_EXPORT unsigned int oapv_version(char *ver, int size); + #ifdef __cplusplus } /* extern "C" */ diff --git a/src/oapv.c b/src/oapv.c index 1d282fc..dcf9996 100644 --- a/src/oapv.c +++ b/src/oapv.c @@ -2153,10 +2153,11 @@ int oapvd_info(void *au, int au_size, oapv_au_info_t *aui) #endif // ENABLE_DECODER /////////////////////////////////////////////////////////////////////////////// -const char *oapv_version(void) +unsigned int oapv_version(char *ver, int size) { - static char oapv_version_string[16]; - snprintf(oapv_version_string, sizeof(oapv_version_string), "%d.%d.%d.%d", - OAPV_VER_APISET, OAPV_VER_MAJOR, OAPV_VER_MINOR, OAPV_VER_PATCH); - return (char*)oapv_version_string; + if(ver != NULL) { + snprintf(ver, size, "%d.%d.%d.%d", + OAPV_VER_APISET, OAPV_VER_MAJOR, OAPV_VER_MINOR, OAPV_VER_PATCH); + } + return OAPV_VER_NUM; } From 40b5eb286923577f2c5661418e3b93669bc9a9dc Mon Sep 17 00:00:00 2001 From: "kp5.choi@samsung.com" Date: Mon, 9 Jun 2025 17:35:37 +0900 Subject: [PATCH 2/2] added error handling code in oapv_version Signed-off-by: kp5.choi@samsung.com --- src/oapv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/oapv.c b/src/oapv.c index dcf9996..fd44bc3 100644 --- a/src/oapv.c +++ b/src/oapv.c @@ -2156,8 +2156,12 @@ int oapvd_info(void *au, int au_size, oapv_au_info_t *aui) unsigned int oapv_version(char *ver, int size) { if(ver != NULL) { - snprintf(ver, size, "%d.%d.%d.%d", + int written = snprintf(ver, size, "%d.%d.%d.%d", OAPV_VER_APISET, OAPV_VER_MAJOR, OAPV_VER_MINOR, OAPV_VER_PATCH); + // check if snprintf encountered an error or if the output was truncated. + if (written < 0 || written >= size) { + return OAPV_ERR_INVALID_ARGUMENT; + } } return OAPV_VER_NUM; }