equal
deleted
inserted
replaced
808 argvend = argvstart = NULL; |
808 argvend = argvstart = NULL; |
809 |
809 |
810 /* Check the memory we can use. Typically, argv[i] and |
810 /* Check the memory we can use. Typically, argv[i] and |
811 * argv[i + 1] are continuous. */ |
811 * argv[i + 1] are continuous. */ |
812 for (i = 0; i < argc; ++i) { |
812 for (i = 0; i < argc; ++i) { |
|
813 size_t len; |
813 if (argv[i] > argvend || argv[i] < argvstart) |
814 if (argv[i] > argvend || argv[i] < argvstart) |
814 break; /* not continuous */ |
815 break; /* not continuous */ |
815 size_t len = strlen(argv[i]); |
816 len = strlen(argv[i]); |
816 argvend = argv[i] + len + 1 /* '\0' */; |
817 argvend = argv[i] + len + 1 /* '\0' */; |
817 } |
818 } |
818 if (argvend > argvstart) /* sanity check */ |
819 if (argvend > argvstart) /* sanity check */ |
819 argvsize = argvend - argvstart; |
820 argvsize = argvend - argvstart; |
820 } |
821 } |
1167 #endif /* defined(HAVE_BSD_STATFS) */ |
1168 #endif /* defined(HAVE_BSD_STATFS) */ |
1168 |
1169 |
1169 static PyObject *unblocksignal(PyObject *self, PyObject *args) |
1170 static PyObject *unblocksignal(PyObject *self, PyObject *args) |
1170 { |
1171 { |
1171 int sig = 0; |
1172 int sig = 0; |
|
1173 sigset_t set; |
1172 int r; |
1174 int r; |
1173 if (!PyArg_ParseTuple(args, "i", &sig)) |
1175 if (!PyArg_ParseTuple(args, "i", &sig)) |
1174 return NULL; |
1176 return NULL; |
1175 sigset_t set; |
|
1176 r = sigemptyset(&set); |
1177 r = sigemptyset(&set); |
1177 if (r != 0) |
1178 if (r != 0) |
1178 return PyErr_SetFromErrno(PyExc_OSError); |
1179 return PyErr_SetFromErrno(PyExc_OSError); |
1179 r = sigaddset(&set, sig); |
1180 r = sigaddset(&set, sig); |
1180 if (r != 0) |
1181 if (r != 0) |