mirror of
https://github.com/torvalds/linux.git
synced 2024-12-06 19:11:31 +00:00
[IA64] unsigned cannot be less than 0 in sn_hwperf_ioctl()
struct sn_hwperf_ioctl_args member arg (u64) cannot be less than 0. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
29e4e025be
commit
dec1798f81
@ -786,17 +786,18 @@ sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg)
|
||||
break;
|
||||
|
||||
case SN_HWPERF_GET_OBJ_NODE:
|
||||
if (a.sz != sizeof(u64) || a.arg < 0) {
|
||||
i = a.arg;
|
||||
if (a.sz != sizeof(u64) || i < 0) {
|
||||
r = -EINVAL;
|
||||
goto error;
|
||||
}
|
||||
if ((r = sn_hwperf_enum_objects(&nobj, &objs)) == 0) {
|
||||
if (a.arg >= nobj) {
|
||||
if (i >= nobj) {
|
||||
r = -EINVAL;
|
||||
vfree(objs);
|
||||
goto error;
|
||||
}
|
||||
if (objs[(i = a.arg)].id != a.arg) {
|
||||
if (objs[i].id != a.arg) {
|
||||
for (i = 0; i < nobj; i++) {
|
||||
if (objs[i].id == a.arg)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user