Check return code from string_to_sid.
authorMartin Pool <mbp@samba.org>
Tue, 18 Feb 2003 01:09:19 +0000 (01:09 +0000)
committerMartin Pool <mbp@samba.org>
Tue, 18 Feb 2003 01:09:19 +0000 (01:09 +0000)
(This used to be commit fe449328b226a33ad1c64e087fe63e79f90ab4ac)

source3/nsswitch/wb_client.c
source3/python/py_lsa.c

index 9ac1515d7d3f29e81215775879970a8166c0e6b8..62c9686960d20db268688dde7dd6bcf7cbbb10af 100644 (file)
@@ -56,7 +56,8 @@ BOOL winbind_lookup_name(const char *dom_name, const char *name, DOM_SID *sid,
 
        if ((result = winbindd_request(WINBINDD_LOOKUPNAME, &request, 
                                       &response)) == NSS_STATUS_SUCCESS) {
-               string_to_sid(sid, response.data.sid.sid);
+               if (!string_to_sid(sid, response.data.sid.sid))
+                       return False;
                *name_type = (enum SID_NAME_USE)response.data.sid.type;
        }
 
@@ -158,7 +159,8 @@ BOOL winbind_uid_to_sid(DOM_SID *sid, uid_t uid)
        /* Copy out result */
 
        if (result == NSS_STATUS_SUCCESS) {
-               string_to_sid(sid, response.data.sid.sid);
+               if (!string_to_sid(sid, response.data.sid.sid))
+                       return False;
        } else {
                sid_copy(sid, &global_sid_NULL);
        }
@@ -224,7 +226,8 @@ BOOL winbind_gid_to_sid(DOM_SID *sid, gid_t gid)
        /* Copy out result */
 
        if (result == NSS_STATUS_SUCCESS) {
-               string_to_sid(sid, response.data.sid.sid);
+               if (!string_to_sid(sid, response.data.sid.sid))
+                       return False;
        } else {
                sid_copy(sid, &global_sid_NULL);
        }
index 31706af684064653cb8b0a2b07e5b6684b251bd7..22db29665a0085ccc8d3a31bf21c72c2919612a8 100644 (file)
@@ -235,7 +235,10 @@ static PyObject *lsa_lookup_sids(PyObject *self, PyObject *args,
                for (i = 0; i < num_sids; i++) {
                        PyObject *obj = PyList_GetItem(py_sids, i);
                        
-                       string_to_sid(&sids[i], PyString_AsString(obj));
+                       if (!string_to_sid(&sids[i], PyString_AsString(obj))) {
+                               PyErr_SetString(PyExc_ValueError, "string_to_sid failed");
+                               return NULL;
+                       }
                }
 
        } else {
@@ -245,7 +248,10 @@ static PyObject *lsa_lookup_sids(PyObject *self, PyObject *args,
                num_sids = 1;
                sids = (DOM_SID *)talloc(hnd->mem_ctx, sizeof(DOM_SID));
 
-               string_to_sid(&sids[0], PyString_AsString(py_sids));
+               if (!string_to_sid(&sids[0], PyString_AsString(py_sids))) {
+                       PyErr_SetString(PyExc_ValueError, "string_to_sid failed");
+                       return NULL;
+               }
        }
 
        ntstatus = cli_lsa_lookup_sids(hnd->cli, hnd->mem_ctx, &hnd->pol,