diff options
Diffstat (limited to 'fs/hppfs/hppfs.c')
-rw-r--r-- | fs/hppfs/hppfs.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index fc90ab11c340..4338ff32959d 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c | |||
@@ -69,7 +69,7 @@ static char *dentry_name(struct dentry *dentry, int extra) | |||
69 | struct dentry *parent; | 69 | struct dentry *parent; |
70 | char *root, *name; | 70 | char *root, *name; |
71 | const char *seg_name; | 71 | const char *seg_name; |
72 | int len, seg_len; | 72 | int len, seg_len, root_len; |
73 | 73 | ||
74 | len = 0; | 74 | len = 0; |
75 | parent = dentry; | 75 | parent = dentry; |
@@ -81,7 +81,8 @@ static char *dentry_name(struct dentry *dentry, int extra) | |||
81 | } | 81 | } |
82 | 82 | ||
83 | root = "proc"; | 83 | root = "proc"; |
84 | len += strlen(root); | 84 | root_len = strlen(root); |
85 | len += root_len; | ||
85 | name = kmalloc(len + extra + 1, GFP_KERNEL); | 86 | name = kmalloc(len + extra + 1, GFP_KERNEL); |
86 | if (name == NULL) | 87 | if (name == NULL) |
87 | return NULL; | 88 | return NULL; |
@@ -91,7 +92,7 @@ static char *dentry_name(struct dentry *dentry, int extra) | |||
91 | while (parent->d_parent != parent) { | 92 | while (parent->d_parent != parent) { |
92 | if (is_pid(parent)) { | 93 | if (is_pid(parent)) { |
93 | seg_name = "pid"; | 94 | seg_name = "pid"; |
94 | seg_len = strlen("pid"); | 95 | seg_len = strlen(seg_name); |
95 | } | 96 | } |
96 | else { | 97 | else { |
97 | seg_name = parent->d_name.name; | 98 | seg_name = parent->d_name.name; |
@@ -100,10 +101,10 @@ static char *dentry_name(struct dentry *dentry, int extra) | |||
100 | 101 | ||
101 | len -= seg_len + 1; | 102 | len -= seg_len + 1; |
102 | name[len] = '/'; | 103 | name[len] = '/'; |
103 | strncpy(&name[len + 1], seg_name, seg_len); | 104 | memcpy(&name[len + 1], seg_name, seg_len); |
104 | parent = parent->d_parent; | 105 | parent = parent->d_parent; |
105 | } | 106 | } |
106 | strncpy(name, root, strlen(root)); | 107 | memcpy(name, root, root_len); |
107 | return name; | 108 | return name; |
108 | } | 109 | } |
109 | 110 | ||