当前位置: 技术问答>linux和unix
copy_from_user的问题,数据考多了?
来源: 互联网 发布时间:2015-09-15
本文导语: 增加了一个系统调用,其中两个参数是char *path,char *comment,在内核里要将用户空间的数据考到内核,现在发现数据考多了, char file_path[128]; copy_from_user(file_path,path,strlen(path)); 问题就是strlen(path)用的不对,那怎么知...
增加了一个系统调用,其中两个参数是char *path,char *comment,在内核里要将用户空间的数据考到内核,现在发现数据考多了,
char file_path[128];
copy_from_user(file_path,path,strlen(path));
问题就是strlen(path)用的不对,那怎么知道path的长度呢?除了从用户空间传进去外?
char file_path[128];
copy_from_user(file_path,path,strlen(path));
问题就是strlen(path)用的不对,那怎么知道path的长度呢?除了从用户空间传进去外?
|
这个问题奇怪?path长度不从用户空间传进去,难道让kernel去猜吗?
另外,code也不能这么写。
应该是
memset(file_path, 0, sizeof(file_path);
copy_from_user(file_path,path,sizeof(file_path)-1);
另外,code也不能这么写。
应该是
memset(file_path, 0, sizeof(file_path);
copy_from_user(file_path,path,sizeof(file_path)-1);
|
我觉得应该使用系统的宏MAC_PATH来做。
char file_path[MAX_PATH];
memset(file_path, 0, sizeof(file_path);
copy_from_user(file_path,path,sizeof(file_path)-1);
path也使用MAX_PATH来定义。
char file_path[MAX_PATH];
memset(file_path, 0, sizeof(file_path);
copy_from_user(file_path,path,sizeof(file_path)-1);
path也使用MAX_PATH来定义。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。