OSDN Git Service

libgo: Update to Go 1.0.3.
[pf3gnuchains/gcc-fork.git] / libgo / go / syscall / security_windows.go
index bd40fe5..4353af4 100644 (file)
@@ -37,10 +37,13 @@ const (
 // TranslateAccountName converts a directory service
 // object name from one format to another.
 func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) {
-       u := StringToUTF16Ptr(username)
+       u, e := utf16PtrFromString(username)
+       if e != nil {
+               return "", e
+       }
        b := make([]uint16, 50)
        n := uint32(len(b))
-       e := TranslateName(u, from, to, &b[0], &n)
+       e = TranslateName(u, from, to, &b[0], &n)
        if e != nil {
                if e != ERROR_INSUFFICIENT_BUFFER {
                        return "", e
@@ -94,7 +97,11 @@ type SID struct{}
 // sid into a valid, functional sid.
 func StringToSid(s string) (*SID, error) {
        var sid *SID
-       e := ConvertStringSidToSid(StringToUTF16Ptr(s), &sid)
+       p, e := utf16PtrFromString(s)
+       if e != nil {
+               return nil, e
+       }
+       e = ConvertStringSidToSid(p, &sid)
        if e != nil {
                return nil, e
        }
@@ -109,17 +116,23 @@ func LookupSID(system, account string) (sid *SID, domain string, accType uint32,
        if len(account) == 0 {
                return nil, "", 0, EINVAL
        }
-       acc := StringToUTF16Ptr(account)
+       acc, e := utf16PtrFromString(account)
+       if e != nil {
+               return nil, "", 0, e
+       }
        var sys *uint16
        if len(system) > 0 {
-               sys = StringToUTF16Ptr(system)
+               sys, e = utf16PtrFromString(system)
+               if e != nil {
+                       return nil, "", 0, e
+               }
        }
        db := make([]uint16, 50)
        dn := uint32(len(db))
        b := make([]byte, 50)
        n := uint32(len(b))
        sid = (*SID)(unsafe.Pointer(&b[0]))
-       e := LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType)
+       e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType)
        if e != nil {
                if e != ERROR_INSUFFICIENT_BUFFER {
                        return nil, "", 0, e
@@ -170,7 +183,10 @@ func (sid *SID) Copy() (*SID, error) {
 func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) {
        var sys *uint16
        if len(system) > 0 {
-               sys = StringToUTF16Ptr(system)
+               sys, err = utf16PtrFromString(system)
+               if err != nil {
+                       return "", "", 0, err
+               }
        }
        b := make([]uint16, 50)
        n := uint32(len(b))