aboutsummaryrefslogtreecommitdiff
path: root/e2fsprogs
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-05-27 08:35:59 +0100
committerRon Yorston <rmy@pobox.com>2023-05-27 08:35:59 +0100
commit603af9bb92af6bc429d880df71618e96820967c5 (patch)
tree7100a2f8d93e7d133329906c2f0658c9cf5be171 /e2fsprogs
parent5adeafb91fe5d0fbfd2e4f773e64da9aa13d2f09 (diff)
downloadbusybox-w32-603af9bb92af6bc429d880df71618e96820967c5.tar.gz
busybox-w32-603af9bb92af6bc429d880df71618e96820967c5.tar.bz2
busybox-w32-603af9bb92af6bc429d880df71618e96820967c5.zip
win32: support "app exec link" reparse points
Reparse points with the tag IO_REPARSE_TAG_APPEXECLINK are present in ~/AppData/Local/Microsoft/WindowsApps in Windows 10 and 11. They are: Used by Universal Windows Platform (UWP) packages to encode information that allows the application to be launched by CreateProcess. Modify readlink(2) and lsattr(1) to treat them as symbolic links, in much the same way as was done previously for junctions. They aren't really symbolic links but they're similar. Costs 128-160 bytes. (GitHub issue #327)
Diffstat (limited to 'e2fsprogs')
-rw-r--r--e2fsprogs/e2fs_lib.c6
-rw-r--r--e2fsprogs/lsattr.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/e2fsprogs/e2fs_lib.c b/e2fsprogs/e2fs_lib.c
index 031f5e06b..4a4db1a13 100644
--- a/e2fsprogs/e2fs_lib.c
+++ b/e2fsprogs/e2fs_lib.c
@@ -135,6 +135,9 @@ void print_e2flags_long(struct stat *sb)
135 case IO_REPARSE_TAG_MOUNT_POINT: 135 case IO_REPARSE_TAG_MOUNT_POINT:
136 ln = "Junction"; 136 ln = "Junction";
137 break; 137 break;
138 case IO_REPARSE_TAG_APPEXECLINK:
139 ln = "App_Exec_Link";
140 break;
138 } 141 }
139 } 142 }
140 fputs(ln, stdout); 143 fputs(ln, stdout);
@@ -174,6 +177,9 @@ void print_e2flags(struct stat *sb)
174 case IO_REPARSE_TAG_MOUNT_POINT: 177 case IO_REPARSE_TAG_MOUNT_POINT:
175 c = 'j'; 178 c = 'j';
176 break; 179 break;
180 case IO_REPARSE_TAG_APPEXECLINK:
181 c = 'A';
182 break;
177 } 183 }
178 } 184 }
179#endif 185#endif
diff --git a/e2fsprogs/lsattr.c b/e2fsprogs/lsattr.c
index a6c4a27e9..87fdb78b3 100644
--- a/e2fsprogs/lsattr.c
+++ b/e2fsprogs/lsattr.c
@@ -47,6 +47,7 @@
47//usage: "\n\nAttributes:\n" 47//usage: "\n\nAttributes:\n"
48//usage: "\n j Junction" 48//usage: "\n j Junction"
49//usage: "\n l Symbolic link" 49//usage: "\n l Symbolic link"
50//usage: "\n A App exec link"
50//usage: "\n R Reparse point" 51//usage: "\n R Reparse point"
51//usage: "\n o Offline" 52//usage: "\n o Offline"
52//usage: "\n e Encrypted" 53//usage: "\n e Encrypted"