diff options
Diffstat (limited to 'firmware/common/dir.c')
-rw-r--r-- | firmware/common/dir.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/firmware/common/dir.c b/firmware/common/dir.c index e33bb7fc8f..c3965c2418 100644 --- a/firmware/common/dir.c +++ b/firmware/common/dir.c | |||
@@ -127,9 +127,9 @@ int mkdir(char *name, int mode) | |||
127 | int rc; | 127 | int rc; |
128 | 128 | ||
129 | (void)mode; | 129 | (void)mode; |
130 | 130 | ||
131 | if ( name[0] != '/' ) { | 131 | if ( name[0] != '/' ) { |
132 | DEBUGF("Only absolute paths supported right now\n"); | 132 | DEBUGF("mkdir: Only absolute paths supported right now\n"); |
133 | return -1; | 133 | return -1; |
134 | } | 134 | } |
135 | 135 | ||
@@ -155,13 +155,19 @@ int mkdir(char *name, int mode) | |||
155 | return -2; | 155 | return -2; |
156 | } | 156 | } |
157 | 157 | ||
158 | if(basename[0] == 0) { | ||
159 | DEBUGF("mkdir: Empty dir name\n"); | ||
160 | errno = EINVAL; | ||
161 | return -3; | ||
162 | } | ||
163 | |||
158 | /* Now check if the name already exists */ | 164 | /* Now check if the name already exists */ |
159 | while ((entry = readdir(dir))) { | 165 | while ((entry = readdir(dir))) { |
160 | if ( !strcasecmp(basename, entry->d_name) ) { | 166 | if ( !strcasecmp(basename, entry->d_name) ) { |
161 | DEBUGF("mkdir error: file exists\n"); | 167 | DEBUGF("mkdir error: file exists\n"); |
162 | errno = EEXIST; | 168 | errno = EEXIST; |
163 | closedir(dir); | 169 | closedir(dir); |
164 | return - 3; | 170 | return - 4; |
165 | } | 171 | } |
166 | } | 172 | } |
167 | 173 | ||