summaryrefslogtreecommitdiff
path: root/archivers/lha/files/patch-lhlist.c
blob: 9d0df0c5b203a034f4a50347d1867a421189f863 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
--- src/lhlist.c.orig	2000-10-04 14:57:38 UTC
+++ src/lhlist.c
@@ -28,9 +28,9 @@ print_size(packed_size, original_size)
 	long            packed_size, original_size;
 {
 	if (verbose_listing)
-		printf("%7d ", packed_size);
+		printf("%7ld ", packed_size);
 
-	printf("%7d ", original_size);
+	printf("%7ld ", original_size);
 
 	if (original_size == 0L)
 		printf("******");
@@ -236,25 +236,28 @@ list_one(hdr)
 
 	print_size(hdr->packed_size, hdr->original_size);
 
-	if (verbose_listing)
+	if (verbose_listing) {
 		if (hdr->has_crc)
 			printf(" %s %04x", method, hdr->crc);
 		else
 			printf(" %s ****", method);
+	}
 
 	printf(" ");
 	print_stamp(hdr->unix_last_modified_stamp);
 
-	if (!verbose)
+	if (!verbose) {
 		if ((mode & UNIX_FILE_SYMLINK) != UNIX_FILE_SYMLINK)
 			printf(" %s", hdr->name);
 		else {
 			char            buf[256], *b1, *b2;
-			strcpy(buf, hdr->name);
+			strncpy(buf, hdr->name, sizeof(buf));
+			buf[sizeof(buf)-1] = 0;
 			b1 = strtok(buf, "|");
 			b2 = strtok(NULL, "|");
 			printf(" %s -> %s", b1, b2);
 		}
+	}
 
 	if (verbose)
 		printf(" [%d]", hdr->header_level);