mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8218021: Have jarsigner preserve posix permission attributes
Reviewed-by: weijun, lancea, alanb
This commit is contained in:
parent
dc63bf261b
commit
3d9bad16d1
14 changed files with 292 additions and 17 deletions
|
@ -657,6 +657,11 @@ public class ZipFile implements ZipConstants, Closeable {
|
|||
e.size = CENLEN(cen, pos);
|
||||
e.csize = CENSIZ(cen, pos);
|
||||
e.method = CENHOW(cen, pos);
|
||||
if (CENVEM_FA(cen, pos) == FILE_ATTRIBUTES_UNIX) {
|
||||
// 12 bits for setuid, setgid, sticky + perms
|
||||
e.posixPerms = CENATX_PERMS(cen, pos) & 0xFFF;
|
||||
}
|
||||
|
||||
if (elen != 0) {
|
||||
int start = pos + CENHDR + nlen;
|
||||
e.setExtra0(Arrays.copyOfRange(cen, start, start + elen), true, false);
|
||||
|
@ -1092,6 +1097,16 @@ public class ZipFile implements ZipConstants, Closeable {
|
|||
public Stream<String> entryNameStream(ZipFile zip) {
|
||||
return zip.entryNameStream();
|
||||
}
|
||||
// only set posix perms value via ZipEntry contructor for now
|
||||
@Override
|
||||
public int getPosixPerms(ZipEntry ze) {
|
||||
return ze.posixPerms;
|
||||
}
|
||||
@Override
|
||||
public void setPosixPerms(ZipEntry ze, int perms) {
|
||||
ze.posixPerms = perms;
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
isWindows = VM.getSavedProperty("os.name").contains("Windows");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue