Page MenuHomeFreeBSD

D28192.id85293.diff
No OneTemporary

D28192.id85293.diff

Index: sys/compat/linux/linux_stats.c
===================================================================
--- sys/compat/linux/linux_stats.c
+++ sys/compat/linux/linux_stats.c
@@ -661,8 +661,21 @@
int error, dfd, flag;
struct stat buf;
- if (args->flag & ~LINUX_AT_SYMLINK_NOFOLLOW)
+ if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) {
+ linux_msg(td, "fstatat unsupported flag 0x%x", args->flag);
return (EINVAL);
+ }
+
+ if (args->flag & LINUX_AT_EMPTY_PATH) {
+ if (args->dfd == AT_FDCWD) {
+ linux_msg(td, "unsupported fstatat with AT_FDCWD");
+ return (EBADF);
+ }
+ error = kern_fstat(td, args->dfd, &buf);
+ translate_fd_major_minor(td, args->dfd, &buf);
+ goto out;
+ }
+
flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ?
AT_SYMLINK_NOFOLLOW : 0;
@@ -675,6 +688,7 @@
error = linux_kern_statat(td, flag, dfd, path, UIO_SYSSPACE, &buf);
LFREEPATH(path);
}
+out:
if (error == 0)
error = newstat_copyout(&buf, args->statbuf);

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 29, 11:48 AM (14 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26331792
Default Alt Text
D28192.id85293.diff (994 B)

Event Timeline