]> diplodocus.org Git - nmh/commitdiff
Compare character with EOF using signed comparison because
authorDavid Levine <levinedl@acm.org>
Sat, 15 Mar 2014 00:04:45 +0000 (19:04 -0500)
committerDavid Levine <levinedl@acm.org>
Sat, 15 Mar 2014 00:04:45 +0000 (19:04 -0500)
EOF can be (and is likely) negative.  This showed up on
arm7, which apparently uses unsigned char for char.

sbr/m_getfld.c

index d278e5288828917ca1f48e1259f2d5c68c59155b..63b3fda21fd87713a60f4c2a34ff331e329d8923 100644 (file)
@@ -799,7 +799,7 @@ m_unknown(m_getfld_state_t *gstate, FILE *iob)
     s->msg_style = MS_UNKNOWN;
 
     for (i = 0, cp = text; i < sizeof text; ++i, ++cp) {
-       if ((*cp = Getc (s)) == EOF) {
+       if ((signed char) (*cp = Getc (s)) == EOF) {
            break;
        }
     }
@@ -879,7 +879,7 @@ m_Eom (m_getfld_state_t s, int c)
     char *cp;
 
     for (i = 0, cp = text; i < s->edelimlen; ++i, ++cp) {
-       if ((*cp = Getc (s)) == EOF) {
+       if ((signed char) (*cp = Getc (s)) == EOF) {
            break;
        }
     }