1diff -r jcifs_1.3.15/src/jcifs/smb/SecurityDescriptor.java jcifs/src/jcifs/smb/SecurityDescriptor.java
224a25
3>     SID owner_user, owner_group;
440c41
5<         ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to owner sid
6---
7>         int ownerUOffset = ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to owner sid
842c43
9<         ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to group sid
10---
11>         int ownerGOffset = ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to group sid
1244c45
13<         ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to sacl
14---
15>         int saclOffset = ServerMessageBlock.readInt4(buffer, bufferIndex); // offset to sacl
1648c49,53
17<         bufferIndex = start + daclOffset;
18---
19>         if (ownerUOffset > 0) {
20>             bufferIndex = start + ownerUOffset;
21>             owner_user = new SID(buffer, bufferIndex);
22>             bufferIndex += 28; // ???
23>         }
2450,55c55,59
25<         bufferIndex++; // revision
26<         bufferIndex++;
27<         int size = ServerMessageBlock.readInt2(buffer, bufferIndex);
28<         bufferIndex += 2;
29<         int numAces = ServerMessageBlock.readInt4(buffer, bufferIndex);
30<         bufferIndex += 4;
31---
32>         if (ownerGOffset > 0) {
33>             bufferIndex = start + ownerGOffset;
34>             owner_group = new SID(buffer, bufferIndex);
35>             bufferIndex += 28; // ???
36>         }
3757,58c61
38<         if (numAces > 4096)
39<             throw new IOException( "Invalid SecurityDescriptor" );
40---
41>         bufferIndex = start + daclOffset;
4260a64,73
43>             bufferIndex++; // revision
44>             bufferIndex++;
45>             int size = ServerMessageBlock.readInt2(buffer, bufferIndex);
46>             bufferIndex += 2;
47>             int numAces = ServerMessageBlock.readInt4(buffer, bufferIndex);
48>             bufferIndex += 4;
49>
50>             if (numAces > 4096)
51>                 throw new IOException( "Invalid SecurityDescriptor" );
52>
53diff -r jcifs_1.3.15/src/jcifs/smb/SmbFile.java jcifs/src/jcifs/smb/SmbFile.java
542966a2967,2998
55>     public SID getOwnerUser() throws IOException {
56>
57>         int f = open0(O_RDONLY, READ_CONTROL, 0, isDirectory() ? 1 : 0);
58>
59>         /*
60>          * NtTrans Query Security Desc Request / Response
61>          */
62>
63>         NtTransQuerySecurityDesc request = new NtTransQuerySecurityDesc(f, 0x01);
64>         NtTransQuerySecurityDescResponse response = new NtTransQuerySecurityDescResponse();
65>         send(request, response);
66>
67>         close(f, 0L);
68>         return response.securityDescriptor.owner_user;
69>     }
70>
71>     public SID getOwnerGroup() throws IOException {
72>
73>         int f = open0(O_RDONLY, READ_CONTROL, 0, isDirectory() ? 1 : 0);
74>
75>         /*
76>          * NtTrans Query Security Desc Request / Response
77>          */
78>
79>         NtTransQuerySecurityDesc request = new NtTransQuerySecurityDesc(f, 0x02);
80>         NtTransQuerySecurityDescResponse response = new NtTransQuerySecurityDescResponse();
81>         send(request, response);
82>
83>         close(f, 0L);
84>         return response.securityDescriptor.owner_group;
85>     }
86>
87