summaryrefslogtreecommitdiffstats
path: root/ports-mgmt/portmanager/files/patch-ac
blob: 4212684a747008f0d14da90ca5cd7a4c7653f1df (plain)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
diff -ruN ./libPMGR/src/PMGRrDbCreate.c ../../portmanager-0.2.0/libPMGR/src/PMGRrDbCreate.c
--- ./libPMGR/src/PMGRrDbCreate.c	Thu Aug 12 02:19:05 2004
+++ ../../portmanager-0.2.0/libPMGR/src/PMGRrDbCreate.c	Thu Oct 28 15:28:20 2004
@@ -55,6 +55,7 @@
 	char*			portDependencyDir	= NULL;
 	char*			portDir 		= NULL;
 	char*			portName		= NULL;
+	int			address			= 0;
 	int			errorCode		= 0;
 	int			idx			= 0;
 	int			portDependencyDirLen	= 0;
@@ -140,10 +141,46 @@
 		}
 		fread( portBuffer, 1, size, portStream );
 		portBuffer[size+1]	= 0;
-		portName		= strstr( portBuffer, "@name " ) + strlen( "@name " );
-		portNameLen		= strstr( portName, "\n" ) - portName;
-		portDir			= strstr( portBuffer, "@comment ORIGIN:" ) + strlen( "@comment ORIGIN:" );
-		portDirLen		= strstr( portDir, "\n" ) - portDir;
+
+		/* sets portName to start address of portname */
+		/* ver 0.2.0_3 added error checking for @name not found int +CONTENTS file */
+		if( (address = (int)strnstr(portBuffer, "@name ", size)) == 0 )
+		{
+			fprintf( stderr, "%s %s error: \"@name\" not found in %s\n", id, ver, pkg.portDirName );
+			fprintf( stderr, "\t\t%s installation is corrupt!\n", pkg.entry->d_name );
+			fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", pkg.entry->d_name );
+			return(1);
+		}
+		portName 		= (char*)(address + strlen("@name "));
+
+		if( (address = (int)strnstr(portName, "\n", 256)) == 0 )
+		{
+			fprintf( stderr, "%s %s portName error: \"end of line\" not found in %s\n", id, ver, pkg.portDirName );
+			fprintf( stderr, "\t\t%s installation is corrupt!\n", pkg.entry->d_name );
+			fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", pkg.entry->d_name );
+			return(1);
+		}
+		portNameLen		= address - (int)portName;
+
+		if( (address = (int)strnstr(portBuffer, "@comment ORIGIN:", size)) == 0 )
+		{
+			fprintf( stderr, "%s %s error: \"@comment ORIGIN:\" not found in %s\n", id, ver, pkg.portDirName );
+			fprintf( stderr, "\t\t%s installation is corrupt!\n", pkg.entry->d_name );
+			fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", pkg.entry->d_name );
+			return(1);
+		}
+		portDir			= (char*)(address + strlen("@comment ORIGIN:"));
+
+
+		if( (address = (int)strnstr(portDir, "\n", 256)) == 0 )
+		{
+			fprintf( stderr, "%s %s portDir error: \"end of line\" not found in %s\n", id, ver, pkg.portDirName );
+			fprintf( stderr, "\t\t%s installation is corrupt!\n", pkg.entry->d_name );
+			fprintf( stderr, "\t\trecomend running \"pkg_delete -f %s\" then manually reinstalling this port\n", pkg.entry->d_name );
+			return(1);
+		}
+		portDirLen		= address - (int)portDir;
+
 		portName[portNameLen] 	= 0;
 		portDir[portDirLen] 	= 0;
 		fprintf( portIStream, "%s%c%s%c\n", portName, NULL, portDir, NULL );
diff -ruN ./libPMGR/src/libPMGR.h ../../portmanager-0.2.0/libPMGR/src/libPMGR.h
--- ./libPMGR/src/libPMGR.h	Thu Oct 28 15:33:54 2004
+++ ../../portmanager-0.2.0/libPMGR/src/libPMGR.h	Thu Oct 28 15:31:41 2004
@@ -33,7 +33,7 @@
 #include	<pmupgrade.h>
 
 #ifndef VER	
-static	char	ver[]	= "0.2.0_2";
+static	char	ver[]	= "0.2.0_3";
 #define VER	1
 #endif
 
OpenPOWER on IntegriCloud