提交 6202b6c1 编写于 作者: G goprife@gmail.com

fix bugs in lseek in dfs_posix.c and dfs_jffs2.c

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1946 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 70463829
......@@ -438,10 +438,12 @@ static int dfs_jffs2_lseek(struct dfs_fd* file,
jffs2_file = (cyg_file *)(file->data);
/* set offset as current offset */
jffs2_file_lseek(jffs2_file, &offset, SEEK_SET);
result = jffs2_file_lseek(jffs2_file, &offset, SEEK_SET);
if (result)
return jffs2_result_to_dfs(result);
return 0;
/* update file position */
file->pos = offset;
return offset;
}
/* return the size of struct dirent*/
......
......@@ -199,11 +199,16 @@ off_t lseek(int fd, off_t offset, int whence)
case DFS_SEEK_END:
offset += d->size;
break;
default:
rt_set_errno(-DFS_STATUS_EINVAL);
return -1;
}
if (offset < 0)
{
rt_set_errno(DFS_STATUS_EINVAL);
rt_set_errno(-DFS_STATUS_EINVAL);
return -1;
}
result = dfs_file_lseek(d, offset);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册