summaryrefslogtreecommitdiffstats
path: root/src/H5Pdxpl.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-10-27 02:12:02 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-10-27 02:12:02 (GMT)
commitc274ffe1c9bdfa256459213cab1ece7f566b9620 (patch)
treea08fa12cc07b4b8f8471bbcfd8d94e34a82d03c5 /src/H5Pdxpl.c
parenta75d43be95aa7009b5a20306eedb08c0a734a18e (diff)
downloadhdf5-c274ffe1c9bdfa256459213cab1ece7f566b9620.zip
hdf5-c274ffe1c9bdfa256459213cab1ece7f566b9620.tar.gz
hdf5-c274ffe1c9bdfa256459213cab1ece7f566b9620.tar.bz2
[svn-r9466] Purpose:
Bug fix Description: Clean up potential buffer overflow in strncpy() Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
Diffstat (limited to 'src/H5Pdxpl.c')
-rw-r--r--src/H5Pdxpl.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c
index 5941a19..49fece6 100644
--- a/src/H5Pdxpl.c
+++ b/src/H5Pdxpl.c
@@ -80,6 +80,7 @@ done:
FUNC_LEAVE_API(ret_value);
}
+
/*-------------------------------------------------------------------------
* Function: H5Pget_data_transform
*
@@ -136,11 +137,9 @@ ssize_t H5Pget_data_transform(hid_t plist_id, char* expression /*out*/, size_t s
len = HDstrlen(pexp);
if(expression)
{
- /* sanity check */
- if(size > len)
- size = len;
-
- HDstrncpy(expression, pexp, size);
+ HDstrncpy(expression, pexp, MIN(len+1,size));
+ if(len >= size)
+ expression[size-1]='\0';
}
ret_value = (ssize_t)len;
@@ -155,9 +154,6 @@ done:
FUNC_LEAVE_API(ret_value);
}
-
-
-
/*-------------------------------------------------------------------------
* Function: H5Pset_buffer