LONG_MIN=-9,223,372,036,854,775,808 LONG_MAX=9,223,372,036,854,775,807
when if (value < LONG_MIN || value > LONG_MAX) is True?
int getLongFromObjectOrReply(client c, robj o, long target, const char msg) { long long value;
if (getLongLongFromObjectOrReply(c, o, &value, msg) != C_OK) return C_ERR;
if (value < LONG_MIN || value > LONG_MAX) {
if (msg != NULL) {
addReplyError(c,(char*)msg);
} else {
addReplyError(c,"value is out of range");
}
return C_ERR;
}
*target = value;
return C_OK;
}
Comment From: sundb
in 32bit system long is 32bit and long long is 64bit.
Comment From: zkteco-home
int string2l(const char s, size_t slen, long lval) { long long llval;
if (!string2ll(s,slen,&llval))
return 0;
if (llval < LONG_MIN || llval > LONG_MAX)
return 0;
*lval = (long)llval;
return 1;
}
it means it is useless in 64bit