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
|