about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2010-03-23 16:23:51 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2010-03-23 16:23:51 +0000
commit3a54a339a59e83834ea18d88cab7104fd9d8b9ca (patch)
tree7d34ef707c469f1c2e0c7e9277c523683d21d1d2
parent1e87d3f47aea9a808dbe488beb1a51a3dce0c1b5 (diff)
downloadnetpbm-mirror-3a54a339a59e83834ea18d88cab7104fd9d8b9ca.tar.gz
netpbm-mirror-3a54a339a59e83834ea18d88cab7104fd9d8b9ca.tar.xz
netpbm-mirror-3a54a339a59e83834ea18d88cab7104fd9d8b9ca.zip
Release 10.49.05
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@1157 9d0c8265-081b-0410-96cb-a4ca84ce46f8
-rw-r--r--doc/HISTORY5
-rw-r--r--lib/libpbmfont.c34
-rw-r--r--version.mk2
3 files changed, 29 insertions, 12 deletions
diff --git a/doc/HISTORY b/doc/HISTORY
index f6f555df..be62355b 100644
--- a/doc/HISTORY
+++ b/doc/HISTORY
@@ -4,6 +4,11 @@ Netpbm.
 CHANGE HISTORY 
 --------------
 
+10.03.23 BJH  Release 10.49.05
+
+              pbmtext: fix crash when BDF font file contains spurious
+              blank line.  Ignore such blank lines.
+              
 10.03.17 BJH  Release 10.49.04
 
               ppmtoilbm: fix arithmetic overflow with image dimension
diff --git a/lib/libpbmfont.c b/lib/libpbmfont.c
index 902eaf0d..ff75d0a1 100644
--- a/lib/libpbmfont.c
+++ b/lib/libpbmfont.c
@@ -1102,20 +1102,32 @@ mk_argvn(char *        const s,
 
 
 static int
-readline(FILE *        const fp,
-         char *        const buf,
-         const char ** const arg) {
+readline(FILE *        const ifP,
+         char *        const line,
+         const char ** const wordList) {
+/*----------------------------------------------------------------------------
+   Read a nonblank line from file *ifP.  Return the value of the whole line
+   in *buf (must be at least 1024 bytes long), and parse it into words
+   in *wordList (must have at least 32 entries).
 
-    int retval;
-    char * rc;
+   If there is no nonblank line before EOF, return rc == -1.
+-----------------------------------------------------------------------------*/
+    bool gotLine;
+    bool error;
 
-    rc = fgets(buf, 1024, fp);
-    if (rc == NULL)
-        retval = -1;
-    else
-        retval = mk_argvn(buf, arg, 32);
+    for (gotLine = false, error = false; !gotLine && !error; ) {
+        char * rc;
 
-    return retval;
+        rc = fgets(line, 1024, ifP);
+        if (rc == NULL)
+            error = true;
+        else {
+            mk_argvn(line, wordList, 32);
+            if (wordList[0] != NULL)
+                gotLine = true;
+        }
+    }
+    return error ? -1 : 0;
 }
 
 
diff --git a/version.mk b/version.mk
index decc380f..4cb726b4 100644
--- a/version.mk
+++ b/version.mk
@@ -1,4 +1,4 @@
 NETPBM_MAJOR_RELEASE = 10
 NETPBM_MINOR_RELEASE = 49
-NETPBM_POINT_RELEASE = 4
+NETPBM_POINT_RELEASE = 5