mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
r3131: - make map_nt_error_from_unix() return NT_STATUS_UNSUCCESSFUL if errno is 0
- more consistent checking for system call return values in simple backend
(This used to be commit 375a9a1347
)
This commit is contained in:
parent
517238f0aa
commit
651f3903f0
@ -1534,13 +1534,13 @@ const struct unix_error_map unix_dos_nt_errmap[] = {
|
|||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
Map an NT error code from a Unix error code.
|
Map an NT error code from a Unix error code.
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
NTSTATUS map_nt_error_from_unix(int unix_error)
|
NTSTATUS map_nt_error_from_unix(int unix_error)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
if (unix_error == 0)
|
if (unix_error == 0) {
|
||||||
return NT_STATUS_OK;
|
return NT_STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Look through list */
|
/* Look through list */
|
||||||
while(unix_dos_nt_errmap[i].unix_error != 0) {
|
while(unix_dos_nt_errmap[i].unix_error != 0) {
|
||||||
|
@ -262,8 +262,6 @@ static NTSTATUS svfs_qpathinfo(struct ntvfs_module_context *ntvfs,
|
|||||||
DEBUG(19,("svfs_qpathinfo: file %s\n", unix_path));
|
DEBUG(19,("svfs_qpathinfo: file %s\n", unix_path));
|
||||||
if (stat(unix_path, &st) == -1) {
|
if (stat(unix_path, &st) == -1) {
|
||||||
DEBUG(19,("svfs_qpathinfo: file %s errno=%d\n", unix_path, errno));
|
DEBUG(19,("svfs_qpathinfo: file %s errno=%d\n", unix_path, errno));
|
||||||
if (errno == 0)
|
|
||||||
errno = ENOENT;
|
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
DEBUG(19,("svfs_qpathinfo: file %s, stat done\n", unix_path));
|
DEBUG(19,("svfs_qpathinfo: file %s, stat done\n", unix_path));
|
||||||
@ -290,8 +288,6 @@ static NTSTATUS svfs_qfileinfo(struct ntvfs_module_context *ntvfs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (fstat(info->generic.in.fnum, &st) == -1) {
|
if (fstat(info->generic.in.fnum, &st) == -1) {
|
||||||
if (errno == 0)
|
|
||||||
errno = ENOENT;
|
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,15 +368,11 @@ static NTSTATUS svfs_open(struct ntvfs_module_context *ntvfs,
|
|||||||
do_open:
|
do_open:
|
||||||
fd = open(unix_path, flags, 0644);
|
fd = open(unix_path, flags, 0644);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
if (errno == 0)
|
|
||||||
errno = ENOENT;
|
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fstat(fd, &st) == -1) {
|
if (fstat(fd, &st) == -1) {
|
||||||
DEBUG(9,("svfs_open: fstat errno=%d\n", errno));
|
DEBUG(9,("svfs_open: fstat errno=%d\n", errno));
|
||||||
if (errno == 0)
|
|
||||||
errno = ENOENT;
|
|
||||||
close(fd);
|
close(fd);
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
@ -465,7 +457,7 @@ static NTSTATUS svfs_rename(struct ntvfs_module_context *ntvfs,
|
|||||||
unix_path1 = svfs_unix_path(ntvfs, req, ren->rename.in.pattern1);
|
unix_path1 = svfs_unix_path(ntvfs, req, ren->rename.in.pattern1);
|
||||||
unix_path2 = svfs_unix_path(ntvfs, req, ren->rename.in.pattern2);
|
unix_path2 = svfs_unix_path(ntvfs, req, ren->rename.in.pattern2);
|
||||||
|
|
||||||
if (rename(unix_path1, unix_path2) != 0) {
|
if (rename(unix_path1, unix_path2) == -1) {
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +585,7 @@ static NTSTATUS svfs_close(struct ntvfs_module_context *ntvfs,
|
|||||||
return NT_STATUS_INVALID_HANDLE;
|
return NT_STATUS_INVALID_HANDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (close(io->close.in.fnum) != 0) {
|
if (close(io->close.in.fnum) == -1) {
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -669,7 +661,7 @@ static NTSTATUS svfs_setfileinfo(struct ntvfs_module_context *ntvfs,
|
|||||||
case RAW_SFILEINFO_END_OF_FILE_INFO:
|
case RAW_SFILEINFO_END_OF_FILE_INFO:
|
||||||
case RAW_SFILEINFO_END_OF_FILE_INFORMATION:
|
case RAW_SFILEINFO_END_OF_FILE_INFORMATION:
|
||||||
if (ftruncate(info->end_of_file_info.file.fnum,
|
if (ftruncate(info->end_of_file_info.file.fnum,
|
||||||
info->end_of_file_info.in.size) != 0) {
|
info->end_of_file_info.in.size) == -1) {
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -752,7 +744,7 @@ static NTSTATUS svfs_fsattr(struct ntvfs_module_context *ntvfs,
|
|||||||
return ntvfs_map_fsattr(req, fs, ntvfs);
|
return ntvfs_map_fsattr(req, fs, ntvfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stat(private->connectpath, &st) != 0) {
|
if (stat(private->connectpath, &st) == -1) {
|
||||||
return map_nt_error_from_unix(errno);
|
return map_nt_error_from_unix(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user