Hi Hung,
Reviewed the patch.
Ack.
/Neel.
On Monday 23 March 2015 06:48 PM, Hung Nguyen wrote:
> osaf/libs/agents/saf/imma/imma_oi_api.c | 13 ++++++++++++-
> osaf/libs/agents/saf/imma/imma_om_api.c | 13 ++++++++++++-
> 2 files changed, 24 insertions(+), 2 deletions(-)
>
>
> Ensure strings sent to IMM server are null terminated.
>
> diff --git a/osaf/libs/agents/saf/imma/imma_oi_api.c
> b/osaf/libs/agents/saf/imma/imma_oi_api.c
> --- a/osaf/libs/agents/saf/imma/imma_oi_api.c
> +++ b/osaf/libs/agents/saf/imma/imma_oi_api.c
> @@ -2839,7 +2839,13 @@ static SaAisErrorT rt_object_create_comm
> size_t parentNameLen = 0;
> if (parentName && (parentNameLen =
> osaf_extended_name_length(parentName)) > 0) {
> evt.info.immnd.info.objCreate.parentOrObjectDn.size =
> parentNameLen + 1;
> - evt.info.immnd.info.objCreate.parentOrObjectDn.buf =
> (char *)osaf_extended_name_borrow(parentName);
> + evt.info.immnd.info.objCreate.parentOrObjectDn.buf =
> (char*) malloc((parentNameLen + 1) * sizeof(char));
> + if
> (!evt.info.immnd.info.objCreate.parentOrObjectDn.buf) {
> + rc = SA_AIS_ERR_NO_MEMORY;
> + goto mds_send_fail;
> + }
> +
> memcpy(evt.info.immnd.info.objCreate.parentOrObjectDn.buf,
> osaf_extended_name_borrow(parentName), parentNameLen);
> +
> evt.info.immnd.info.objCreate.parentOrObjectDn.buf[parentNameLen] = '\0';
> } else {
> evt.info.immnd.info.objCreate.parentOrObjectDn.size = 0;
> evt.info.immnd.info.objCreate.parentOrObjectDn.buf =
> NULL;
> @@ -2988,6 +2994,11 @@ static SaAisErrorT rt_object_create_comm
> evt.info.immnd.info.objCreate.className.buf = NULL;
> }
>
> + if (parentName && evt.info.immnd.info.objCreate.parentOrObjectDn.buf) {
> + free(evt.info.immnd.info.objCreate.parentOrObjectDn.buf);
> + evt.info.immnd.info.objCreate.parentOrObjectDn.buf = NULL;
> + }
> +
> while (evt.info.immnd.info.objCreate.attrValues) {
> IMMSV_ATTR_VALUES_LIST *p =
> evt.info.immnd.info.objCreate.attrValues;
> evt.info.immnd.info.objCreate.attrValues = p->next;
> diff --git a/osaf/libs/agents/saf/imma/imma_om_api.c
> b/osaf/libs/agents/saf/imma/imma_om_api.c
> --- a/osaf/libs/agents/saf/imma/imma_om_api.c
> +++ b/osaf/libs/agents/saf/imma/imma_om_api.c
> @@ -1838,7 +1838,13 @@ static SaAisErrorT ccb_object_create_com
> }
>
> evt.info.immnd.info.objCreate.parentOrObjectDn.size =
> parentNameLength + 1;
> - evt.info.immnd.info.objCreate.parentOrObjectDn.buf = (char
> *)osaf_extended_name_borrow(parentName);
> + evt.info.immnd.info.objCreate.parentOrObjectDn.buf = (char*)
> malloc((parentNameLength + 1) * sizeof(char));
> + if (!evt.info.immnd.info.objCreate.parentOrObjectDn.buf) {
> + rc = SA_AIS_ERR_NO_MEMORY;
> + goto mds_send_fail;
> + }
> + memcpy(evt.info.immnd.info.objCreate.parentOrObjectDn.buf,
> osaf_extended_name_borrow(parentName), parentNameLength);
> +
> evt.info.immnd.info.objCreate.parentOrObjectDn.buf[parentNameLength] = '\0';
> } else if (objectName) {
> size_t objectNameLength = strlen(objectName);
> if(!osaf_is_extended_names_enabled() && objectNameLength >=
> SA_MAX_UNEXTENDED_NAME_LENGTH) {
> @@ -1987,6 +1993,11 @@ static SaAisErrorT ccb_object_create_com
> evt.info.immnd.info.objCreate.className.buf = NULL;
> }
>
> + if (parentName && evt.info.immnd.info.objCreate.parentOrObjectDn.buf) {
> + free(evt.info.immnd.info.objCreate.parentOrObjectDn.buf);
> + evt.info.immnd.info.objCreate.parentOrObjectDn.buf = NULL;
> + }
> +
> while (evt.info.immnd.info.objCreate.attrValues) {
> IMMSV_ATTR_VALUES_LIST *p =
> evt.info.immnd.info.objCreate.attrValues;
> evt.info.immnd.info.objCreate.attrValues = p->next;
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for all
> things parallel software development, from weekly thought leadership blogs to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Opensaf-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel