776 static PyObject *
777 PyShmSemaphore_setperm(
778 PyShmSemObj *self,
779 PyObject *args)
780 {
781 long newmode, oldmode;
782 semctl_arg arg;
783
784 if (!PyArg_ParseTuple(args, "l", &newmode))
when PyArg_ParseTuple() succeeds
taking False path
785 return NULL;
786 refresh_semaphore_status(self);
when considering range: -0x80000000 <= value <= -1
taking False path
787 newmode &= 0777; /* permission bits only */
788 oldmode = (mode_t)self->ds.sem_perm.mode;
789 self->ds.sem_perm.mode ^= 0777;
790 self->ds.sem_perm.mode |= (mode_t)newmode;
791 arg.buf = &(self->ds);
792 if (semctl(self->semid, 0, IPC_SET, arg) == -1) {
passing uninitialized data (arg) as argument 4 to function at src/extensions/shmmodule.c:792
found 1 similar trace(s) to this
793 self->ds.sem_perm.mode = (mode_t)oldmode;
794 return PyShm_Err();
795 }
796 Py_INCREF(Py_None);
797 return Py_None;
798 }