From 5f659d166599ee5e84be6897b4cd7c630e4cc746 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Tue, 6 Dec 2011 09:21:35 -0800 Subject: [PATCH] kernel - Remove unnecessary < 0 checks for sopt_valsize unsigned field + fixup * Remove unnecessary < 0 checks for sopt_valsize, which is an unsigned field * Add an upper-bound test in one place which did not have it. Reported-by: Edward O'callaghan, logan1 --- sys/kern/uipc_syscalls.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 35760bd..461a671 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -1102,7 +1102,7 @@ kern_setsockopt(int s, struct sockopt *sopt) return (EFAULT); if (sopt->sopt_val != NULL && sopt->sopt_valsize == 0) return (EINVAL); - if (sopt->sopt_valsize < 0) + if (sopt->sopt_valsize > SOMAXOPT_SIZE) /* unsigned */ return (EINVAL); error = holdsock(p->p_fd, s, &fp); @@ -1132,7 +1132,7 @@ sys_setsockopt(struct setsockopt_args *uap) sopt.sopt_td = td; sopt.sopt_val = NULL; - if (sopt.sopt_valsize < 0 || sopt.sopt_valsize > SOMAXOPT_SIZE) + if (sopt.sopt_valsize > SOMAXOPT_SIZE) /* unsigned */ return (EINVAL); if (uap->val) { sopt.sopt_val = kmalloc(sopt.sopt_valsize, M_TEMP, M_WAITOK); @@ -1165,7 +1165,7 @@ kern_getsockopt(int s, struct sockopt *sopt) return (EFAULT); if (sopt->sopt_val != NULL && sopt->sopt_valsize == 0) return (EINVAL); - if (sopt->sopt_valsize < 0 || sopt->sopt_valsize > SOMAXOPT_SIZE) + if (sopt->sopt_valsize > SOMAXOPT_SIZE) /* unsigned */ return (EINVAL); error = holdsock(p->p_fd, s, &fp); @@ -1203,7 +1203,7 @@ sys_getsockopt(struct getsockopt_args *uap) sopt.sopt_td = td; sopt.sopt_val = NULL; - if (sopt.sopt_valsize < 0 || sopt.sopt_valsize > SOMAXOPT_SIZE) + if (sopt.sopt_valsize > SOMAXOPT_SIZE) /* unsigned */ return (EINVAL); if (uap->val) { sopt.sopt_val = kmalloc(sopt.sopt_valsize, M_TEMP, M_WAITOK); -- 1.7.7.2