(putvec): Saturate and log error on underflow/overflow, don't just

truncate.
This commit is contained in:
Markus Armbruster 2004-03-05 07:59:29 +00:00
parent 9989c5b3ec
commit ade0e97856

View file

@ -31,6 +31,7 @@
* Dave Pare, 1989
*/
#include <limits.h>
#include "misc.h"
#include "var.h"
#include "file.h"
@ -64,8 +65,16 @@ putvec(int class, int *vec, s_char *sp, int ptype)
return 0;
}
for (i = 0; i <= I_MAX; ++i)
for (i = 0; i <= I_MAX; ++i) {
if (vec[i] < 0) {
logerror("putvec: item %d underflow", i);
dst[i] = 0;
} else if (vec[i] > SHRT_MAX) {
logerror("putvec: item %d overflow", i);
dst[i] = SHRT_MAX;
} else
dst[i] = vec[i];
}
return I_MAX;
}