From: Arlin Davis Date: Thu, 14 Feb 2008 17:46:18 +0000 (-0800) Subject: uDAT: Make sure we stay within bounds when manipulating the ia_name. X-Git-Tag: dapl-2.0.7.1~2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6b11838043a6012668c7e1a22a869e9e84dc40d6;p=~ardavis%2Fdapl.git uDAT: Make sure we stay within bounds when manipulating the ia_name. Signed-off-by: Patrick Marchand Latifi Signed-off by: Arlin Davis --- diff --git a/dat/udat/udat.c b/dat/udat/udat.c index bb1c580..f3194b0 100755 --- a/dat/udat/udat.c +++ b/dat/udat/udat.c @@ -184,7 +184,7 @@ dat_ia_openv ( len = dat_os_strlen (name); - if ( DAT_NAME_MAX_LENGTH < len ) + if ( DAT_NAME_MAX_LENGTH <= len ) { return DAT_ERROR (DAT_INVALID_PARAMETER, DAT_INVALID_ARG1); } @@ -199,8 +199,7 @@ dat_ia_openv ( return DAT_ERROR (DAT_INVALID_STATE, 0); } - dat_os_strncpy (info.ia_name, name, len); - info.ia_name[len] = '\0'; + dat_os_strncpy (info.ia_name, name, len+1); info.dapl_version_major = dapl_major; info.dapl_version_minor = dapl_minor; @@ -324,10 +323,9 @@ dat_ia_close ( len = dat_os_strlen (ia_name); - dat_os_assert ( len <= DAT_NAME_MAX_LENGTH ); + dat_os_assert ( len < DAT_NAME_MAX_LENGTH ); - dat_os_strncpy (info.ia_name, ia_name, len); - info.ia_name[len] = '\0'; + dat_os_strncpy (info.ia_name, ia_name, len+1); info.dapl_version_major = provider_attr.dapl_version_major; info.dapl_version_minor = provider_attr.dapl_version_minor;