From 674f8b1b050c7f6544424ea5c882878699dbc248 Mon Sep 17 00:00:00 2001 From: Jamie Iles Date: Mon, 16 Mar 2015 17:23:36 +0000 Subject: IMFS: don't strlen() an unterminated string in IMFS_dir_read(). a43a3466 (IMFS: Implement variable length node names) introduced a changed to IMFS_jnode_t from being a null terminated string to a separate unterminated string and length. IMFS_dir_read() was still performing a strlen() on this unterminated string though and when doing an 'ls' in the fileio example I saw that some filenames had garbage suffixes. --- cpukit/libfs/src/imfs/imfs_dir_default.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cpukit/libfs/src/imfs/imfs_dir_default.c') diff --git a/cpukit/libfs/src/imfs/imfs_dir_default.c b/cpukit/libfs/src/imfs/imfs_dir_default.c index 98f06dfce4..2f1207205a 100644 --- a/cpukit/libfs/src/imfs/imfs_dir_default.c +++ b/cpukit/libfs/src/imfs/imfs_dir_default.c @@ -73,7 +73,7 @@ static ssize_t IMFS_dir_read( dir_ent->d_off = current_entry; dir_ent->d_reclen = sizeof( *dir_ent ); dir_ent->d_ino = IMFS_node_to_ino( imfs_node ); - dir_ent->d_namlen = strlen( imfs_node->name ); + dir_ent->d_namlen = imfs_node->namelen; memcpy( dir_ent->d_name, imfs_node->name, dir_ent->d_namlen + 1 ); iop->offset += sizeof( *dir_ent ); -- cgit v1.2.3