X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fm_getfld.c;h=475289331d31c467be76df4e228153daf197af1a;hp=8697f20692e8c5b2f2d5517b24a9cf23c8c182ac;hb=045b9601403a216c400642229f2b291f85f88f7d;hpb=1691e80890e5d8ba258c51c214a3e91880e1db2b diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c index 8697f20..4752893 100644 --- a/sbr/m_getfld.c +++ b/sbr/m_getfld.c @@ -259,7 +259,7 @@ m_getfld (int state, unsigned char *name, unsigned char *buf, bp = sp = (unsigned char *) iob->_ptr - 1; j = (cnt = iob->_cnt+1) < i ? cnt : i; #endif - while ((c = *bp++) != ':' && c != '\n' && --j >= 0) + while (--j >= 0 && (c = *bp++) != ':' && c != '\n') *cp++ = c; j = bp - sp; @@ -390,7 +390,7 @@ m_getfld (int state, unsigned char *name, unsigned char *buf, *cp++ = j = *(iob->_ptr + c); c = _filbuf(iob); #endif - if ((j == '\0' || j == '\n') && c != ' ' && c != '\t') { + if (c == EOF || (j == '\0' || j == '\n') && c != ' ' && c != '\t') { if (c != EOF) { #ifdef LINUX_STDIO --iob->_IO_read_ptr; @@ -538,7 +538,7 @@ m_unknown(FILE *iob) ; #else /* RPATHS */ cp = unixbuf; - while ((c = getc (iob)) != '\n') + while ((c = getc (iob)) != '\n' && cp - unixbuf < BUFSIZ - 1) *cp++ = c; *cp = 0; #endif /* RPATHS */ @@ -639,7 +639,7 @@ m_Eom (int c, FILE *iob) break; #else /* RPATHS */ cp = unixbuf; - while ((c = getc (iob)) != '\n' && c >= 0) + while ((c = getc (iob)) != '\n' && c >= 0 && cp - unixbuf < BUFSIZ - 1) *cp++ = c; *cp = 0; #endif /* RPATHS */