Fixed ACL routines to work on systems with unsigned char.
authorSam Hartman <hartmans@mit.edu>
Wed, 14 Jun 1995 22:27:37 +0000 (22:27 +0000)
committerSam Hartman <hartmans@mit.edu>
Wed, 14 Jun 1995 22:27:37 +0000 (22:27 +0000)
Also fixed minor ordering problem in error checks.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6063 dc483132-0cff-0310-8789-dd5450dbe970

src/kadmin/v5server/ChangeLog
src/kadmin/v5server/srv_acl.c

index 2dbae7792d5705fbd99c15cf070dffa0e7c02c7d..c2cb92393aed240e380fb44f2f81d5a88dcbbad0 100644 (file)
@@ -1,3 +1,15 @@
+Wed Jun 14 17:19:09 1995  Sam Hartman  <hartmans@tardis.MIT.EDU>
+
+       * srv_acl.c (acl_get_line): Check to make sure we haven't exceeded
+        the buffer size before overwriting the newline we may have just
+        read.  If the newline is clobbered, there is no way of
+        distinguishing between a line that uses the full buffer from a
+        line longer than the full buffer.  Also, cast EOF to a char, so
+        that it works on unsigned char systems.  This means you can't
+        distinguish reading 0xff at the beginning of a line from EOF, but
+        the only other option is to introduce an intermediate variable.
+
+
 Tue Jun 13 11:36:52 1995  Sam Hartman  <hartmans@tardis.MIT.EDU>
 
        * srv_net.c: Include sys/select.h if it is found.
index 4b1cf4d6101d9426244568a3153ea657bc35923a..fae8e5a9aae5655a04177f95e2252b8b2f6a21cf 100644 (file)
@@ -96,14 +96,14 @@ acl_get_line(fp, lnp)
              (!feof(fp)) &&
              ((acl_buf[i] = fgetc(fp)) != '\n'));
             i++);
-       acl_buf[i] = '\0';
 
        /* Check if we exceeded our buffer size */
        if ((i == BUFSIZ) && (!feof(fp)) && (acl_buf[i] != '\n')) {
            fprintf(stderr, acl_line2long_msg, acl_acl_file, *lnp);
            while (fgetc(fp) != '\n');
        }
-       if (acl_buf[0] == EOF)  /* ptooey */
+               acl_buf[i] = '\0';
+       if (acl_buf[0] == (char) EOF)   /* ptooey */
            acl_buf[0] = '\0';
        else
            (*lnp)++;