On platforms where the char type is unsigned, the check for EOF (which
is negative) will always fail, leaving a 255 byte at the end of the
line. This can cause a syntax error, in turn causing the contents of
kadm5.acl to be ignored. Fix this bug by removing the cast on EOF.
[ghudson@mit.edu: more precisely describe consequences of bug in
commit message]
(cherry picked from commit
8fd85a77789496b8d7f8092f6e8a2824bc09a6cf)
ticket: 8346
version_fixed: 1.13.4
tags: -pullup
status: resolved
int byte;
byte = fgetc(fp);
acl_buf[i] = byte;
- if (byte == (char)EOF) {
+ if (byte == EOF) {
if (i > 0 && acl_buf[i-1] == '\\')
i--;
break; /* it gets nulled-out below */