Index: softmagic.c =================================================================== RCS file: /home/ncvs/src/contrib/file/softmagic.c,v retrieving revision 1.1.1.1.2.3 diff -u -r1.1.1.1.2.3 softmagic.c --- softmagic.c 16 Mar 2003 04:44:55 -0000 1.1.1.1.2.3 +++ softmagic.c 3 Jan 2005 12:56:04 -0000 @@ -381,27 +381,27 @@ return 1; case STRING: { - int n; + size_t len; /* Null terminate and eat *trailing* return */ p->s[sizeof(p->s) - 1] = '\0'; - n = strlen(p->s) - 1; - if (p->s[n] == '\n') - p->s[n] = '\0'; + len = strlen(p->s) - 1; + if (len-- && p->s[len] == '\n') + p->s[len] = '\0'; return 1; } case PSTRING: { char *ptr1 = p->s, *ptr2 = ptr1 + 1; - int n = *p->s; - if (n >= sizeof(p->s)) - n = sizeof(p->s) - 1; - while (n--) + size_t len = *p->s; + if (len >= sizeof(p->s)) + len = sizeof(p->s) - 1; + while(len--) *ptr1++ = *ptr2++; *ptr1 = '\0'; - n = strlen(p->s) - 1; - if (p->s[n] == '\n') - p->s[n] = '\0'; + len = strlen(p->s); + if (len-- && p->s[len] == '\n') + p->s[len] = '0'; return 1; } case BESHORT: