about summary refs log tree commit diff
path: root/converter/pbm
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2015-05-30 16:56:56 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2015-05-30 16:56:56 +0000
commit0f599eb9b1a2fd87d9bf235267e52ee43304dbd0 (patch)
treef94b57c2f7f0c17be1215db143fbb5090d0af89f /converter/pbm
parentde0b878012e4cf75a583e02493a8804288c33a87 (diff)
downloadnetpbm-mirror-0f599eb9b1a2fd87d9bf235267e52ee43304dbd0.tar.gz
netpbm-mirror-0f599eb9b1a2fd87d9bf235267e52ee43304dbd0.tar.xz
netpbm-mirror-0f599eb9b1a2fd87d9bf235267e52ee43304dbd0.zip
Fix buffer overrun, garbage first row output
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2530 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter/pbm')
-rw-r--r--converter/pbm/pbmtogo.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/converter/pbm/pbmtogo.c b/converter/pbm/pbmtogo.c
index b4f3f372..23b2ee9a 100644
--- a/converter/pbm/pbmtogo.c
+++ b/converter/pbm/pbmtogo.c
@@ -164,7 +164,7 @@ main(int           argc,
     padright = rucols - cols;
 
     for (i = 0; i < GRAPHON_WIDTH_BYTES; ++i )
-      buffer[i] = 0;
+      buffer[i] = oldscanline[i] = 0;
     putinit();
 
     /* Start donwloading screen raster */
@@ -215,7 +215,7 @@ main(int           argc,
                   {
                       olditem = buffer[nbyte++];
                       ucount++;
-                  } while ((olditem != buffer[nbyte])
+                  } while (nbyte < bytesperrow && (olditem != buffer[nbyte])
                            && (ucount < MIN(bytesperrow, MAX_REPEAT)));
                   
                 if ((ucount != MAX_REPEAT) && (nbyte != bytesperrow)) {
@@ -246,7 +246,7 @@ main(int           argc,
                   {
                       olditem = buffer[nbyte++];
                       ecount++;
-                  } while ((olditem == buffer[nbyte])
+                  } while (nbyte < bytesperrow && (olditem == buffer[nbyte])
                            && (ecount < MIN(bytesperrow, MAX_REPEAT)));
                   
                 if (ecount > 1) {