vleft = table->maxlen / sizeof(int);
left = *lenp;
- for (; left && vleft--; i++, first=0) {
+ for (; left && vleft--; i++, min++, max++, first=0) {
if (write) {
while (left) {
char c;
buffer += len;
left -= len;
- if (min && val < *min++)
- continue;
- if (max && val > *max++)
+ if ((min && val < *min) || (max && val > *max))
continue;
*i = val;
} else {
vleft = table->maxlen / sizeof(unsigned long);
left = *lenp;
- for (; left && vleft--; i++, first=0) {
+ for (; left && vleft--; i++, min++, max++, first=0) {
if (write) {
while (left) {
char c;
if(neg)
continue;
- if (min && val < *min++)
- continue;
- if (max && val > *max++)
+ if ((min && val < *min) || (max && val > *max))
continue;
*i = val;
} else {