]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
uDAT: Make sure we stay within bounds when manipulating the ia_name.
authorArlin Davis <arlin.r.davis@intel.com>
Thu, 14 Feb 2008 17:46:18 +0000 (09:46 -0800)
committerArlin Davis <arlin.r.davis@intel.com>
Thu, 14 Feb 2008 17:46:18 +0000 (09:46 -0800)
Signed-off-by: Patrick Marchand Latifi <patrick.latifi@qlogic.com>
Signed-off by: Arlin Davis <ardavis@ichips.intel.com>

dat/udat/udat.c

index bb1c5800effa979ac12c64853c49ee96c7b3a1c8..f3194b094183005cd81c0754a8a57ab7522251bd 100755 (executable)
@@ -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;