From 3a34725dbd77fbb97d65b30efd4edb1052ab722e Mon Sep 17 00:00:00 2001 From: kamaljeet Date: Wed, 7 Aug 2019 10:22:14 +0530 Subject: [PATCH] [Non-ACR][Calendar-service][Fixed ASAN issue TFDF-2241] Change-Id: Ic79aa5c0f0b52fcca8c6a9879535a6c2f1cf0223 Signed-off-by: kamaljeet --- common/cal_record_attendee.c | 2 +- common/cal_utils.c | 11 +++++++++++ common/cal_utils.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/common/cal_record_attendee.c b/common/cal_record_attendee.c index bb5cd92..63d4378 100644 --- a/common/cal_record_attendee.c +++ b/common/cal_record_attendee.c @@ -260,7 +260,7 @@ static int _cal_record_attendee_set_str(calendar_record_h record, unsigned int p break; case CAL_PROPERTY_ATTENDEE_EMAIL: CAL_FREE(rec->attendee_email); - rec->attendee_email = cal_strdup(value); + rec->attendee_email = cal_strndup(value); break; case CAL_PROPERTY_ATTENDEE_DELEGATEE_URI: CAL_FREE(rec->attendee_delegatee_uri); diff --git a/common/cal_utils.c b/common/cal_utils.c index 53cb573..e402ee1 100644 --- a/common/cal_utils.c +++ b/common/cal_utils.c @@ -23,6 +23,8 @@ #include #include "cal_internal.h" +#define CAL_LIMIT 1000000 + char* cal_strdup(const char *src) { if (src) @@ -30,6 +32,15 @@ char* cal_strdup(const char *src) return NULL; } + +char* cal_strndup(const char *src) +{ + if (src) + return strndup(src,CAL_LIMIT); + return NULL; +} + + static gint _sort_cb(gconstpointer a, gconstpointer b) { return GPOINTER_TO_INT(a) < GPOINTER_TO_INT(b) ? -1 : 1; diff --git a/common/cal_utils.h b/common/cal_utils.h index c241e25..024af44 100644 --- a/common/cal_utils.h +++ b/common/cal_utils.h @@ -26,6 +26,7 @@ extern "C" { #endif char* cal_strdup(const char *src); +char* cal_strndup(const char *src); char* cal_strdup_with_sort(const char *src); int cal_add_safe(int a, int b); -- 2.7.4