mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-30 22:54:17 -04:00
perf python: Validate CPU and thread maps in pyrf_evsel__open
Add explicit Py_TYPE checks to ensure the arguments passed are
actually of the correct pyrf_thread_map and pyrf_cpu_map types.
Fixes: 877108e42b ("perf tools: Initial python binding")
Signed-off-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
@@ -2113,11 +2113,21 @@ static PyObject *pyrf_evsel__open(struct pyrf_evsel *pevsel,
|
||||
&pcpus, &pthreads, &group, &inherit))
|
||||
return NULL;
|
||||
|
||||
if (pthreads != NULL && pthreads != Py_None)
|
||||
if (pthreads != NULL && pthreads != Py_None) {
|
||||
if (!PyObject_TypeCheck(pthreads, &pyrf_thread_map__type)) {
|
||||
PyErr_SetString(PyExc_TypeError, "threads must be a thread_map");
|
||||
return NULL;
|
||||
}
|
||||
threads = ((struct pyrf_thread_map *)pthreads)->threads;
|
||||
}
|
||||
|
||||
if (pcpus != NULL && pcpus != Py_None)
|
||||
if (pcpus != NULL && pcpus != Py_None) {
|
||||
if (!PyObject_TypeCheck(pcpus, &pyrf_cpu_map__type)) {
|
||||
PyErr_SetString(PyExc_TypeError, "cpus must be a cpu_map");
|
||||
return NULL;
|
||||
}
|
||||
cpus = ((struct pyrf_cpu_map *)pcpus)->cpus;
|
||||
}
|
||||
|
||||
evsel->core.attr.inherit = inherit;
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user