diff options
author | Luke Leighton <lkcl@samba.org> | 2000-08-18 05:56:19 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 2000-08-18 05:56:19 +0000 |
commit | 24e0c8ef70dc59bfaaa113c3d44befbccbcba15f (patch) | |
tree | c3c8c53a5a5c19d8103e425bd59a64ead0f76aa7 /source/lib/util_file.c | |
parent | facef51be4e3f3be75613f39c8dfedfa7410552c (diff) | |
download | samba-24e0c8ef70dc59bfaaa113c3d44befbccbcba15f.tar.gz samba-24e0c8ef70dc59bfaaa113c3d44befbccbcba15f.tar.xz samba-24e0c8ef70dc59bfaaa113c3d44befbccbcba15f.zip |
getfileline() - line with length of zero -> filebuf[strlen(filebuf)-1]
is NOT ok.
Diffstat (limited to 'source/lib/util_file.c')
-rw-r--r-- | source/lib/util_file.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/source/lib/util_file.c b/source/lib/util_file.c index 194fb7ae497..50bd85e6e37 100644 --- a/source/lib/util_file.c +++ b/source/lib/util_file.c @@ -217,21 +217,24 @@ int getfileline(void *vp, char *linebuf, int linebuf_size) */ linebuf_len = strlen(linebuf); - if (linebuf[linebuf_len - 1] != '\n') + if (linebuf_len > 0) { - c = '\0'; - while (!ferror(fp) && !feof(fp)) + if (linebuf[linebuf_len - 1] != '\n') { - c = fgetc(fp); - if (c == '\n') + c = '\0'; + while (!ferror(fp) && !feof(fp)) { - break; + c = fgetc(fp); + if (c == '\n') + { + break; + } } } - } - else - { - linebuf[linebuf_len - 1] = '\0'; + else + { + linebuf[linebuf_len - 1] = '\0'; + } } #ifdef DEBUG_PASSWORD |