mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02: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:
parent
612aca22a9
commit
9a142beb1e
|
|
@ -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;
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user