https://issues.apache.org/bugzilla/show_bug.cgi?id=56878
Bug ID: 56878
Summary: Checking whether unsigned int is less than zero is
useless
Product: Tomcat Native
Version: 1.1.31
Hardware: PC
OS: Mac OS X 10.4
Status: NEW
Severity: trivial
Priority: P2
Component: Library
Assignee: [email protected]
Reporter: [email protected]
I just saw this when compiling with clang on Mac OS X (partially because clang
shows all warnings and errors in BIG BOLD SUPER HIGHLIGHTED TEXT!):
src/jnilib.c:130:11: warning: comparison of unsigned expression < 0 is always
false [-Wtautological-compare]
if (l < 0)
~ ^ ~
1 warning generated.
I checked, and the function [jstring tcn_new_stringn(JNIEnv *env, const char
*str, size_t l)] accepts an argument of size_t and then checks to see if it is
less than 0. Since it's unsigned, it will never be negative.
I checked, and this function is not even used in the tcnative library itself.
Looking at similar functions, I can see that tcn_new_stringn actually checks
the Java runtime to see if new references can be created in the local scope and
fails if it can't. The other similar functions do not do such checking, and are
therefore fragile.
I think it makes sense to review these functions to decide what functions to
eliminate (e.g. tcn_new_stringn) and to what extent will the code in tcnative
do diligent sanity checking rather than letting the runtime fail in various
ways.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]