summaryrefslogtreecommitdiff
path: root/fs.c
diff options
context:
space:
mode:
authorrsc <rsc>2007-08-24 21:00:02 +0000
committerrsc <rsc>2007-08-24 21:00:02 +0000
commit766ba5cc06b45439cd3987aa782147041dab65c4 (patch)
tree0155e02e14ab2aa9b0b113e178a787d8d6c2d969 /fs.c
parentaa6824ab64be037bfce9b0d991e6692282f8c1ab (diff)
downloadxv6-labs-766ba5cc06b45439cd3987aa782147041dab65c4.tar.gz
xv6-labs-766ba5cc06b45439cd3987aa782147041dab65c4.tar.bz2
xv6-labs-766ba5cc06b45439cd3987aa782147041dab65c4.zip
first ever correct use of strncpy
Diffstat (limited to 'fs.c')
-rw-r--r--fs.c24
1 files changed, 2 insertions, 22 deletions
diff --git a/fs.c b/fs.c
index bc3cccd..eef20e8 100644
--- a/fs.c
+++ b/fs.c
@@ -455,15 +455,7 @@ writei(struct inode *ip, char *src, uint off, uint n)
int
namecmp(const char *s, const char *t)
{
- int i;
-
- for(i=0; i<DIRSIZ; i++){
- if(s[i] != t[i])
- return s[i] - t[i];
- if(s[i] == 0)
- break;
- }
- return 0;
+ return strncmp(s, t, DIRSIZ);
}
// Look for a directory entry in a directory.
@@ -500,18 +492,6 @@ dirlookup(struct inode *dp, char *name, uint *poff)
return 0;
}
-// Copy one name to another.
-static void
-namecpy(char *s, const char *t)
-{
- int i;
-
- for(i=0; i<DIRSIZ && t[i]; i++)
- s[i] = t[i];
- for(; i<DIRSIZ; i++)
- s[i] = 0;
-}
-
// Write a new directory entry (name, ino) into the directory dp.
int
dirlink(struct inode *dp, char *name, uint ino)
@@ -534,7 +514,7 @@ dirlink(struct inode *dp, char *name, uint ino)
break;
}
- namecpy(de.name, name);
+ strncpy(de.name, name, DIRSIZ);
de.inum = ino;
if(writei(dp, (char*)&de, off, sizeof(de)) != sizeof(de))
panic("dirwrite");