oops. must return "" string and length zero when strlen(filebuf) == 0
authorLuke Leighton <lkcl@samba.org>
Fri, 18 Aug 2000 06:27:24 +0000 (06:27 +0000)
committerLuke Leighton <lkcl@samba.org>
Fri, 18 Aug 2000 06:27:24 +0000 (06:27 +0000)
(This used to be commit d3bc7cca99e47ce89035a03022d7c3ec69e01636)

source3/lib/util_file.c

index 50bd85e6e371fa447efadb59229a43dafaa11d2c..e21aafa009af7b17359a9f56bfe3b00fdcdc6453 100644 (file)
@@ -217,24 +217,27 @@ int getfileline(void *vp, char *linebuf, int linebuf_size)
                 */
 
                linebuf_len = strlen(linebuf);
-               if (linebuf_len > 0)
+               if (linebuf_len == 0)
                {
-                       if (linebuf[linebuf_len - 1] != '\n')
+                       linebuf[0] = '\0';
+                       return 0;
+               }
+
+               if (linebuf[linebuf_len - 1] != '\n')
+               {
+                       c = '\0';
+                       while (!ferror(fp) && !feof(fp))
                        {
-                               c = '\0';
-                               while (!ferror(fp) && !feof(fp))
+                               c = fgetc(fp);
+                               if (c == '\n')
                                {
-                                       c = fgetc(fp);
-                                       if (c == '\n')
-                                       {
-                                               break;
-                                       }
+                                       break;
                                }
                        }
-                       else
-                       {
-                               linebuf[linebuf_len - 1] = '\0';
-                       }
+               }
+               else
+               {
+                       linebuf[linebuf_len - 1] = '\0';
                }
 
 #ifdef DEBUG_PASSWORD