]>
Commit | Line | Data |
---|---|---|
865ae1d4 AM |
1 | Index: depends.c |
2 | =================================================================== | |
3 | RCS file: /cvs/devel/rpm/lib/depends.c,v | |
4 | retrieving revision 1.325.2.78 | |
5 | diff -u -b -B -w -p -r1.325.2.78 depends.c | |
6 | --- rpm/lib/depends.c 16 May 2007 11:47:44 -0000 1.325.2.78 | |
7 | +++ rpm/lib/depends.c 22 May 2007 11:41:02 -0000 | |
8 | @@ -1264,12 +1264,12 @@ static int checkPackageDeps(rpmts ts, co | |
9 | * Adding: check name/provides dep against each conflict match, | |
10 | * Erasing: check name/provides/filename dep against each requiredby match. | |
11 | * @param ts transaction set | |
12 | - * @param dep dependency name | |
13 | + * @param depName dependency name | |
14 | * @param mi rpm database iterator | |
15 | * @param adding dependency is from added package set? | |
16 | * @return 0 no problems found | |
17 | */ | |
18 | -static int checkPackageSet(rpmts ts, const char * dep, | |
19 | +static int checkPackageSet(rpmts ts, const char * depName, | |
20 | /*@only@*/ /*@null@*/ rpmdbMatchIterator mi, int adding) | |
21 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
22 | /*@modifies ts, mi, rpmGlobalMacroContext, fileSystem, internalState @*/ | |
23 | @@ -1307,7 +1307,7 @@ static int checkPackageSet(rpmts ts, con | |
24 | ||
25 | rc = checkPackageDeps(ts, pkgNEVRA, | |
26 | requires, conflicts, dirnames, linktos, | |
27 | - dep, tscolor, adding); | |
28 | + depName, tscolor, adding); | |
29 | ||
30 | linktos = rpmdsFree(linktos); | |
31 | dirnames = rpmdsFree(dirnames); | |
32 | @@ -1328,10 +1328,10 @@ static int checkPackageSet(rpmts ts, con | |
33 | /** | |
34 | * Check to-be-erased dependencies against installed requires. | |
35 | * @param ts transaction set | |
36 | - * @param dep requires name | |
37 | + * @param depName requires name | |
38 | * @return 0 no problems found | |
39 | */ | |
40 | -static int checkDependentPackages(rpmts ts, const char * dep) | |
41 | +static int checkDependentPackages(rpmts ts, const char * depName) | |
42 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
43 | /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/ | |
44 | { | |
45 | @@ -1340,8 +1340,8 @@ static int checkDependentPackages(rpmts | |
46 | /* XXX rpmdb can be closed here, avoid error msg. */ | |
47 | if (rpmtsGetRdb(ts) != NULL) { | |
48 | rpmdbMatchIterator mi; | |
49 | - mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, dep, 0); | |
50 | - rc = checkPackageSet(ts, dep, mi, 0); | |
51 | + mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, depName, 0); | |
52 | + rc = checkPackageSet(ts, depName, mi, 0); | |
53 | } | |
54 | return rc; | |
55 | } | |
56 | @@ -1349,10 +1349,10 @@ static int checkDependentPackages(rpmts | |
57 | /** | |
58 | * Check to-be-added dependencies against installed conflicts. | |
59 | * @param ts transaction set | |
60 | - * @param dep conflicts name | |
61 | + * @param depName conflicts name | |
62 | * @return 0 no problems found | |
63 | */ | |
64 | -static int checkDependentConflicts(rpmts ts, const char * dep) | |
65 | +static int checkDependentConflicts(rpmts ts, const char * depName) | |
66 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
67 | /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/ | |
68 | { | |
69 | @@ -1361,8 +1361,8 @@ static int checkDependentConflicts(rpmts | |
70 | /* XXX rpmdb can be closed here, avoid error msg. */ | |
71 | if (rpmtsGetRdb(ts) != NULL) { | |
72 | rpmdbMatchIterator mi; | |
73 | - mi = rpmtsInitIterator(ts, RPMTAG_CONFLICTNAME, dep, 0); | |
74 | - rc = checkPackageSet(ts, dep, mi, 1); | |
75 | + mi = rpmtsInitIterator(ts, RPMTAG_CONFLICTNAME, depName, 0); | |
76 | + rc = checkPackageSet(ts, depName, mi, 1); | |
77 | } | |
78 | ||
79 | return rc; | |
80 | @@ -2277,6 +2277,7 @@ assert(newOrderCount == ts->orderCount); | |
81 | ||
82 | int rpmtsCheck(rpmts ts) | |
83 | { | |
84 | + const char * depName = NULL;; | |
85 | rpmdepFlags depFlags = rpmtsDFlags(ts); | |
86 | uint_32 tscolor = rpmtsColor(ts); | |
87 | rpmdbMatchIterator mi = NULL; | |
88 | @@ -2331,17 +2332,15 @@ int rpmtsCheck(rpmts ts) | |
89 | provides = rpmdsInit(provides); | |
90 | if (provides != NULL) | |
91 | while (rpmdsNext(provides) >= 0) { | |
92 | - const char * Name; | |
93 | - | |
94 | - if ((Name = rpmdsN(provides)) == NULL) | |
95 | - /*@innercontinue@*/ continue; /* XXX can't happen */ | |
96 | + depName = _free(depName); | |
97 | + depName = xstrdup(rpmdsN(provides)); | |
98 | ||
99 | #ifdef NOTYET | |
100 | if (rpmdsNSType(provides) == RPMNS_TYPE_ENVVAR) { | |
101 | const char * EVR = rpmdsEVR(provides); | |
102 | if (rpmdsNegateRC(provides, 0)) | |
103 | EVR = NULL; | |
104 | - rc = envPut(Name, EVR); | |
105 | + rc = envPut(depName, EVR); | |
106 | if (!rc) | |
107 | /*@innercontinue@*/ continue; | |
108 | /*@innerbreak@*/ break; | |
109 | @@ -2349,7 +2348,7 @@ int rpmtsCheck(rpmts ts) | |
110 | #endif | |
111 | ||
112 | /* Adding: check provides key against conflicts matches. */ | |
113 | - if (!checkDependentConflicts(ts, Name)) | |
114 | + if (!checkDependentConflicts(ts, depName)) | |
115 | /*@innercontinue@*/ continue; | |
116 | rc = 1; | |
117 | /*@innerbreak@*/ break; | |
118 | @@ -2377,13 +2376,11 @@ int rpmtsCheck(rpmts ts) | |
119 | provides = rpmdsInit(provides); | |
120 | if (provides != NULL) | |
121 | while (rpmdsNext(provides) >= 0) { | |
122 | - const char * Name; | |
123 | - | |
124 | - if ((Name = rpmdsN(provides)) == NULL) | |
125 | - /*@innercontinue@*/ continue; /* XXX can't happen */ | |
126 | + depName = _free(depName); | |
127 | + depName = xstrdup(rpmdsN(provides)); | |
128 | ||
129 | /* Erasing: check provides against requiredby matches. */ | |
130 | - if (!checkDependentPackages(ts, Name)) | |
131 | + if (!checkDependentPackages(ts, depName)) | |
132 | /*@innercontinue@*/ continue; | |
133 | rc = 1; | |
134 | /*@innerbreak@*/ break; | |
135 | @@ -2395,10 +2392,10 @@ int rpmtsCheck(rpmts ts) | |
136 | fi = rpmteFI(p, RPMTAG_BASENAMES); | |
137 | fi = rpmfiInit(fi, 0); | |
138 | while (rpmfiNext(fi) >= 0) { | |
139 | - const char * fn = rpmfiFN(fi); | |
140 | - | |
141 | + depName = _free(depName); | |
142 | + depName = xstrdup(rpmfiFN(fi)); | |
143 | /* Erasing: check filename against requiredby matches. */ | |
144 | - if (!checkDependentPackages(ts, fn)) | |
145 | + if (!checkDependentPackages(ts, depName)) | |
146 | /*@innercontinue@*/ continue; | |
147 | rc = 1; | |
148 | /*@innerbreak@*/ break; | |
149 | @@ -2429,6 +2426,7 @@ int rpmtsCheck(rpmts ts) | |
150 | exit: | |
151 | mi = rpmdbFreeIterator(mi); | |
152 | pi = rpmtsiFree(pi); | |
153 | + depName = _free(depName); | |
154 | ||
155 | (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_CHECK), 0); | |
156 |