Skip to content

Commit

Permalink
Fix error: comparison of unsigned expression < 0 is always false
Browse files Browse the repository at this point in the history
omrthread_prio_t is of type uintptr_t. It cannot have a value below 0.

J9THREAD_PRIORITY_MIN is defined as 0 and J9THREAD_PRIORITY_MAX is
defined as 11.

In omrthread_attr_set_priority, priority, which is of type
omrthread_prio_t, will always be greater than or equal to
J9THREAD_PRIORITY_MIN. To see if priority is invalid, we only need
to evaluate if it is greater than J9THREAD_PRIORITY_MAX.

Fixes: #7454

Signed-off-by: Babneet Singh <[email protected]>
  • Loading branch information
babsingh committed Sep 9, 2024
1 parent 10fdf65 commit 9cd09f6
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 6 deletions.
3 changes: 1 addition & 2 deletions thread/common/omrthreadattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#include "omrthreadattr.h"

#define J9THREAD_ATTR_IS_VALID(attr) ((attr) && (*(attr)) && ((*(attr))->size == sizeof(omrthread_attr)))
#define J9THREAD_VALUE_OUT_OF_RANGE(val, lo, hi) (((val) < (lo)) || ((val) > (hi)))

static intptr_t failedToSetAttr(intptr_t rc);

Expand Down Expand Up @@ -220,7 +219,7 @@ omrthread_attr_set_priority(omrthread_attr_t *attr, omrthread_prio_t priority)
return J9THREAD_ERR_INVALID_ATTR;
}

if (J9THREAD_VALUE_OUT_OF_RANGE(priority, J9THREAD_PRIORITY_MIN, J9THREAD_PRIORITY_MAX)) {
if (priority > J9THREAD_PRIORITY_MAX) {
return J9THREAD_ERR_INVALID_VALUE;
}

Expand Down
3 changes: 1 addition & 2 deletions thread/unix/omrthreadattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
#include "unix/unixthreadattr.h"

#define J9THREAD_ATTR_IS_VALID(attr) ((attr) && (*(attr)) && ((*(attr))->size == sizeof(unixthread_attr)))
#define J9THREAD_VALUE_OUT_OF_RANGE(val, lo, hi) (((val) < (lo)) || ((val) > (hi)))

static intptr_t setStacksize(pthread_attr_t *pattr, uintptr_t stacksize);
static intptr_t setPriority(pthread_attr_t *pattr, omrthread_prio_t priority);
Expand Down Expand Up @@ -288,7 +287,7 @@ omrthread_attr_set_priority(omrthread_attr_t *attr, omrthread_prio_t priority)
return J9THREAD_SUCCESS;
}

if (J9THREAD_VALUE_OUT_OF_RANGE(priority, J9THREAD_PRIORITY_MIN, J9THREAD_PRIORITY_MAX)) {
if (priority > J9THREAD_PRIORITY_MAX) {
return J9THREAD_ERR_INVALID_VALUE;
}

Expand Down
3 changes: 1 addition & 2 deletions thread/zos390/omrthreadattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
#include "unix/unixthreadattr.h"

#define J9THREAD_ATTR_IS_VALID(attr) ((attr) && (*(attr)) && ((*(attr))->size == sizeof(unixthread_attr)))
#define J9THREAD_VALUE_OUT_OF_RANGE(val, lo, hi) (((val) < (lo)) || ((val) > (hi)))

static intptr_t failedToSetAttr(intptr_t rc);

Expand Down Expand Up @@ -229,7 +228,7 @@ omrthread_attr_set_priority(omrthread_attr_t *attr, omrthread_prio_t priority)
return J9THREAD_ERR_INVALID_ATTR;
}

if (J9THREAD_VALUE_OUT_OF_RANGE(priority, J9THREAD_PRIORITY_MIN, J9THREAD_PRIORITY_MAX)) {
if (priority > J9THREAD_PRIORITY_MAX) {
return J9THREAD_ERR_INVALID_VALUE;
}

Expand Down

0 comments on commit 9cd09f6

Please sign in to comment.