[pywin32-checkins] pywin32/win32/src PySID.cpp,1.8,1.9
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: <ru...@us...> - 2004-02-13 06:31:49
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20357/win32/src Modified Files: PySID.cpp Log Message: More argument validation in manual SID constructor Index: PySID.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/PySID.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** PySID.cpp 7 Nov 2003 03:58:17 -0000 1.8 --- PySID.cpp 13 Feb 2004 06:26:19 -0000 1.9 *************** *** 23,27 **** // @pyparmalt2 [int, ...]|subAuthorities||A list of sub authorities. SID_IDENTIFIER_AUTHORITY sid_ia; ! PyObject *obSubs; if (!PyArg_ParseTuple(args, "(bbbbbb)O:SID", &sid_ia.Value[0], &sid_ia.Value[1],&sid_ia.Value[2], --- 23,29 ---- // @pyparmalt2 [int, ...]|subAuthorities||A list of sub authorities. SID_IDENTIFIER_AUTHORITY sid_ia; ! PyObject *obSubs, *obSubsTuple; ! unsigned long sub0, sub1, sub2, sub3, sub4, sub5, sub6, sub7; ! if (!PyArg_ParseTuple(args, "(bbbbbb)O:SID", &sid_ia.Value[0], &sid_ia.Value[1],&sid_ia.Value[2], *************** *** 29,33 **** &obSubs)) return NULL; - unsigned long sub0, sub1, sub2, sub3, sub4, sub5, sub6, sub7; if (!PySequence_Check(obSubs)) { PyErr_SetString(PyExc_TypeError, "sub authorities must be a sequence of integers."); --- 31,34 ---- *************** *** 39,55 **** return NULL; } ! #define GET_SUB(i) if (i<numSubs) { \ ! PyObject *t = PySequence_GetItem(obSubs, i);\ ! sub##i = PyLong_AsUnsignedLong(t);\ ! Py_XDECREF(t);\ ! } ! GET_SUB(0); ! GET_SUB(1); ! GET_SUB(2); ! GET_SUB(3); ! GET_SUB(4); ! GET_SUB(5); ! GET_SUB(6); ! GET_SUB(7); PSID pNew; if (!AllocateAndInitializeSid(&sid_ia, numSubs, sub0, sub1, sub2, sub3, sub4, sub5, sub6, sub7, &pNew)) --- 40,53 ---- return NULL; } ! obSubsTuple=PySequence_Tuple(obSubs); ! if (!obSubsTuple) ! return NULL; ! BOOL bSuccess=PyArg_ParseTuple(obSubsTuple, "|llllllll:SID", ! &sub0, &sub1, &sub2, &sub3, &sub4, &sub5, &sub6, &sub7); ! Py_DECREF(obSubsTuple); ! if (!bSuccess){ ! PyErr_SetString(PyExc_TypeError, "sub authorities must be a sequence of integers."); ! return NULL; ! } PSID pNew; if (!AllocateAndInitializeSid(&sid_ia, numSubs, sub0, sub1, sub2, sub3, sub4, sub5, sub6, sub7, &pNew)) |