Index: ps.c
===================================================================
RCS file: /home/kde/kdegraphics/kghostview/ps.c,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -u -5 -d -p -r1.11 -r1.11.2.1
--- ps.c	2001/05/04 09:37:49	1.11
+++ ps.c	2002/09/27 02:39:53	1.11.2.1
@@ -224,11 +224,12 @@ psscan(file)
 	if (doc == NULL) {
 	    fprintf(stderr, "Fatal Error: Dynamic memory exhausted.\n");
 	    exit(-1);
 	}
 	memset(doc, 0, sizeof(struct document));
-	sscanf(line, "%*s %s", text);
+	sscanf(line, "%*s %256s", text);
+        text[256] = 0;
 	doc->epsf = iscomment(text, "EPSF-");
 	doc->beginheader = position;
 	section_len = line_len;
     } else {
 	return(NULL);
@@ -248,11 +249,12 @@ psscan(file)
 	} else if (doc->title == NULL && iscomment(line+2, "Title:")) {
 	    doc->title = gettextline(line+length("%%Title:"));
 	} else if (doc->date == NULL && iscomment(line+2, "CreationDate:")) {
 	    doc->date = gettextline(line+length("%%CreationDate:"));
 	} else if (bb_set == NONE && iscomment(line+2, "BoundingBox:")) {
-	    sscanf(line+length("%%BoundingBox:"), "%s", text);
+	    sscanf(line+length("%%BoundingBox:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "(atend)") == 0) {
 		bb_set = ATEND;
 	    } else {
 		if (sscanf(line+length("%%BoundingBox:"), "%d %d %d %d",
 			   &(doc->boundingbox[LLX]),
@@ -280,11 +282,12 @@ psscan(file)
 		    }
 		}
 	    }
 	} else if (orientation_set == NONE &&
 		   iscomment(line+2, "Orientation:")) {
-	    sscanf(line+length("%%Orientation:"), "%s", text);
+	    sscanf(line+length("%%Orientation:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "(atend)") == 0) {
 		orientation_set = ATEND;
 	    } else if (strcmp(text, "Portrait") == 0) {
 		doc->orientation = PORTRAIT;
 		orientation_set = 1;
@@ -297,11 +300,12 @@ psscan(file)
 	    } else if (strcmp(text, "Seascape") == 0) {
 		doc->orientation = SEASCAPE;
 		orientation_set = 1;
 	    }
 	} else if (page_order_set == NONE && iscomment(line+2, "PageOrder:")) {
-	    sscanf(line+length("%%PageOrder:"), "%s", text);
+	    sscanf(line+length("%%PageOrder:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "(atend)") == 0) {
 		page_order_set = ATEND;
 	    } else if (strcmp(text, "Ascend") == 0) {
 		doc->pageorder = ASCEND;
 		page_order_set = 1;
@@ -311,11 +315,12 @@ psscan(file)
 	    } else if (strcmp(text, "Special") == 0) {
 		doc->pageorder = SPECIAL;
 		page_order_set = 1;
 	    }
 	} else if (pages_set == NONE && iscomment(line+2, "Pages:")) {
-	    sscanf(line+length("%%Pages:"), "%s", text);
+	    sscanf(line+length("%%Pages:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "(atend)") == 0) {
 		pages_set = ATEND;
 	    } else {
 		switch (sscanf(line+length("%%Pages:"), "%d %d",
 			       &maxpages, &i)) {
@@ -560,11 +565,12 @@ psscan(file)
 	    section_len += line_len;
 	    if (!DSCcomment(line)) {
 		/* Do nothing */
 	    } else if (doc->default_page_orientation == NONE &&
 		iscomment(line+2, "PageOrientation:")) {
-		sscanf(line+length("%%PageOrientation:"), "%s", text);
+		sscanf(line+length("%%PageOrientation:"), "%256s", text);
+                text[256] = 0;
 		if (strcmp(text, "Portrait") == 0) {
 		    doc->default_page_orientation = PORTRAIT;
 		} else if (strcmp(text, "Landscape") == 0) {
 		    doc->default_page_orientation = LANDSCAPE;
 		} else if (strcmp(text, "UpsideDown") == 0) {
@@ -688,11 +694,12 @@ psscan(file)
 	    preread = 0;
 	    if (!DSCcomment(line)) {
 		/* Do nothing */
 	    } else if (doc->default_page_orientation == NONE &&
 		iscomment(line+2, "PageOrientation:")) {
-		sscanf(line+length("%%PageOrientation:"), "%s", text);
+		sscanf(line+length("%%PageOrientation:"), "%256s", text);
+                text[256] = 0;
 		if (strcmp(text, "Portrait") == 0) {
 		    doc->default_page_orientation = PORTRAIT;
 		} else if (strcmp(text, "Landscape") == 0) {
 		    doc->default_page_orientation = LANDSCAPE;
 		} else if (strcmp(text, "UpsideDown") == 0) {
@@ -814,11 +821,12 @@ continuepage:
 	    section_len += line_len;
 	    if (!DSCcomment(line)) {
 		/* Do nothing */
 	    } else if (doc->pages[doc->numpages].orientation == NONE &&
 		iscomment(line+2, "PageOrientation:")) {
-		sscanf(line+length("%%PageOrientation:"), "%s", text);
+		sscanf(line+length("%%PageOrientation:"), "%256s", text);
+                text[256] = 0;
 		if (strcmp(text, "Portrait") == 0) {
 		    doc->pages[doc->numpages].orientation = PORTRAIT;
 		} else if (strcmp(text, "Landscape") == 0) {
 		    doc->pages[doc->numpages].orientation = LANDSCAPE;
 		} else if (strcmp(text, "UpsideDown") == 0) {
@@ -850,11 +858,12 @@ continuepage:
 		    }
 		}
 		free(cp);
 	    } else if ((page_bb_set == NONE || page_bb_set == ATEND) &&
 		       iscomment(line+2, "PageBoundingBox:")) {
-		sscanf(line+length("%%PageBoundingBox:"), "%s", text);
+		sscanf(line+length("%%PageBoundingBox:"), "%256s", text);
+                text[256] = 0;
 		if (strcmp(text, "(atend)") == 0) {
 		    page_bb_set = ATEND;
 		} else {
 		    if (sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
 			    &(doc->pages[doc->numpages].boundingbox[LLX]),
@@ -954,22 +963,24 @@ continuepage:
 			doc->boundingbox[URY]++;
 		}
 	    }
 	} else if (orientation_set == ATEND &&
 		   iscomment(line+2, "Orientation:")) {
-	    sscanf(line+length("%%Orientation:"), "%s", text);
+	    sscanf(line+length("%%Orientation:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "Portrait") == 0) {
 		doc->orientation = PORTRAIT;
 	    } else if (strcmp(text, "Landscape") == 0) {
 		doc->orientation = LANDSCAPE;
 	    } else if (strcmp(text, "UpsideDown") == 0) {
 		doc->orientation = UPSIDEDOWN;
 	    } else if (strcmp(text, "Seascape") == 0) {
 		doc->orientation = SEASCAPE;
 	    }
 	} else if (page_order_set == ATEND && iscomment(line+2, "PageOrder:")) {
-	    sscanf(line+length("%%PageOrder:"), "%s", text);
+	    sscanf(line+length("%%PageOrder:"), "%256s", text);
+            text[256] = 0;
 	    if (strcmp(text, "Ascend") == 0) {
 		doc->pageorder = ASCEND;
 	    } else if (strcmp(text, "Descend") == 0) {
 		doc->pageorder = DESCEND;
 	    } else if (strcmp(text, "Special") == 0) {
@@ -1248,13 +1259,16 @@ readline(line, size, fp, position, line_
 	    *line_len += nbytes;
 	}
 	*line_len += nbytes;
 	strcpy(line, save);
     } else if (iscomment(line+7, "Data:")) {
+        int rc = 0;
 	text[0] = '\0';
 	strcpy(save, line+7);
-	if (sscanf(line+length("%%BeginData:"), "%d %*s %s", &num, text) >= 1) {
+	rc = sscanf(line+length("%%BeginData:"), "%d %*s %256s", &num, text);
+        text[256] = 0;
+        if (rc >= 1) {
 	    if (strcmp(text, "Lines") == 0) {
 		for (i=0; i < num; i++) {
 		    cp = fgets(line, size, fp);
 		    *line_len += cp ? strlen(line) : 0;
 		}
@@ -1323,13 +1337,15 @@ pscopy(from, to, begin, end)
 	fputs(line, to);
 
 	if (!(DSCcomment(line) && iscomment(line+2, "Begin"))) {
 	    /* Do nothing */
 	} else if (iscomment(line+7, "Data:")) {
+            int rc = 0;
 	    text[0] = '\0';
-	    if (sscanf(line+length("%%BeginData:"),
-		       "%d %*s %s", &num, text) >= 1) {
+	    rc = sscanf(line+length("%%BeginData:"),"%d %*s %256s", &num, text);
+            text[256] = 0;
+            if (rc >= 1) {
 		if (strcmp(text, "Lines") == 0) {
 		    for (i=0; i < num; i++) {
 			fgets(line, sizeof line, from);
 			fputs(line, to);
 		    }
@@ -1403,13 +1419,15 @@ pscopyuntil(from, to, begin, end, commen
 	}
 	fputs(line, to);
 	if (!(DSCcomment(line) && iscomment(line+2, "Begin"))) {
 	    /* Do nothing */
 	} else if (iscomment(line+7, "Data:")) {
+            int rc = 0;
 	    text[0] = '\0';
-	    if (sscanf(line+length("%%BeginData:"),
-		       "%d %*s %s", &num, text) >= 1) {
+	    rc = sscanf(line+length("%%BeginData:"),"%d %*s %256s", &num, text);
+            text[256] = 0;
+            if (rc >= 1) {
 		if (strcmp(text, "Lines") == 0) {
 		    for (i=0; i < num; i++) {
 			fgets(line, sizeof line, from);
 			fputs(line, to);
 		    }
Index: kgv_miniwidget.cpp
===================================================================
RCS file: /home/kde/kdegraphics/kghostview/kgv_miniwidget.cpp,v
retrieving revision 1.100.2.2
retrieving revision 1.100.2.3
diff -u -5 -d -p -u -r1.100.2.2 -r1.100.2.3
--- kgv_miniwidget.cpp	2001/11/08 00:35:51	1.100.2.2
+++ kgv_miniwidget.cpp	2002/09/27 02:39:53	1.100.2.3
@@ -527,11 +527,12 @@ bool KGVMiniWidget::psCopyDoc( const QSt
 	here = ftell( from );
 	if( pages_written || pages_atend ) {
 	    free( comment );
 	    continue;
 	}
-	sscanf( comment + length("%%Pages:" ), "%s", text );
+	sscanf( comment + length("%%Pages:" ), "%256s", text );
+        text[256] = 0;
 	if( strcmp( text, "(atend)" ) == 0 ) {
 	    fputs( comment, to );
 	    pages_atend = true;
 	} 
 	else {
