getfileline() - line with length of zero -> filebuf[strlen(filebuf)-1]
authorLuke Leighton <lkcl@samba.org>
Fri, 18 Aug 2000 05:56:19 +0000 (05:56 +0000)
committerLuke Leighton <lkcl@samba.org>
Fri, 18 Aug 2000 05:56:19 +0000 (05:56 +0000)
is NOT ok.
(This used to be commit 24e0c8ef70dc59bfaaa113c3d44befbccbcba15f)

source3/lib/util_file.c

index 194fb7ae4970bd698690ab5ee91a56881acb225c..50bd85e6e371fa447efadb59229a43dafaa11d2c 100644 (file)
@@ -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