Ignore:
Timestamp:
Apr 22, 2001, 12:38:59 PM (24 years ago)
Author:
sandervl
Message:

merge with latest wine (rtlstr.c)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/NTDLL/sec.cpp

    r4536 r5568  
    1 /* $Id: sec.cpp,v 1.7 2000-10-26 17:26:00 sandervl Exp $ */
     1/* $Id: sec.cpp,v 1.8 2001-04-22 10:38:59 sandervl Exp $ */
    22
    33/*
     
    732732 *  RtlAddAccessAllowedAce                  [NTDLL]
    733733 */
    734 DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,
    735                                     DWORD x2,
    736                                     DWORD x3,
    737                                     DWORD x4)
     734NTSTATUS WINAPI RtlAddAccessAllowedAce(IN OUT PACL pAcl, IN DWORD dwAceRevision,
     735                                       IN DWORD AccessMask, IN PSID pSid)
    738736{
    739737  dprintf(("NTDLL: RtlAddAccessAllowedAce(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
    740            x1,
    741            x2,
    742            x3,
    743            x4));
     738           pAcl,
     739           dwAceRevision,
     740           AccessMask,
     741           pSid));
    744742
    745743  return 0;
     
    750748 *  RtlGetAce     [NTDLL]
    751749 */
    752 DWORD WINAPI RtlGetAce(PACL  pAcl,
    753                        DWORD dwAceIndex,
    754                        LPVOID *pAce )
    755 {
    756   dprintf(("NTDLL: RtlGetAce(%08x,%08x,%08x) not implemented.\n",
     750NTSTATUS WINAPI RtlGetAce(PACL  pAcl,
     751                          DWORD dwAceIndex,
     752                          LPVOID *pAce )
     753{
     754  PACE_HEADER ace;
     755  int      i;
     756
     757  dprintf(("NTDLL: RtlGetAce(%08x,%08x,%08x) test implementation",
    757758           pAcl,
    758759           dwAceIndex,
    759760           pAce));
    760761
    761   return 0;
     762
     763  *pAce = 0;
     764  if(dwAceIndex > pAcl->AceCount) {
     765      dprintf(("index out of range"));
     766      return STATUS_INVALID_PARAMETER;
     767  }
     768  ace = (PACE_HEADER)(pAcl+1);
     769
     770  for (i=0;
     771       i<dwAceIndex;
     772       i++)
     773  {
     774    if ((DWORD)ace>=(((DWORD)pAcl)+pAcl->AclSize))
     775       return STATUS_BUFFER_OVERFLOW;
     776
     777    ace = (PACE_HEADER)(((BYTE*)ace)+ace->AceSize);
     778  }
     779
     780  if ((DWORD)ace>=(((DWORD)pAcl)+pAcl->AclSize))
     781     return STATUS_BUFFER_OVERFLOW;
     782
     783  *pAce = ace;
     784  return STATUS_SUCCESS;
    762785}
    763786
Note: See TracChangeset for help on using the changeset viewer.