OLD | NEW |
1 /* ***** BEGIN LICENSE BLOCK ***** | 1 /* ***** BEGIN LICENSE BLOCK ***** |
2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
3 * | 3 * |
4 * The contents of this file are subject to the Mozilla Public License Version | 4 * The contents of this file are subject to the Mozilla Public License Version |
5 * 1.1 (the "License"); you may not use this file except in compliance with | 5 * 1.1 (the "License"); you may not use this file except in compliance with |
6 * the License. You may obtain a copy of the License at | 6 * the License. You may obtain a copy of the License at |
7 * http://www.mozilla.org/MPL/ | 7 * http://www.mozilla.org/MPL/ |
8 * | 8 * |
9 * Software distributed under the License is distributed on an "AS IS" basis, | 9 * Software distributed under the License is distributed on an "AS IS" basis, |
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
(...skipping 1116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1127 if (moduleSpecList) { | 1127 if (moduleSpecList) { |
1128 char **index; | 1128 char **index; |
1129 | 1129 |
1130 index = moduleSpecList; | 1130 index = moduleSpecList; |
1131 if (*index && SECMOD_GetSkipFirstFlag(module)) { | 1131 if (*index && SECMOD_GetSkipFirstFlag(module)) { |
1132 index++; | 1132 index++; |
1133 } | 1133 } |
1134 | 1134 |
1135 for (; *index; index++) { | 1135 for (; *index; index++) { |
1136 SECMODModule *child; | 1136 SECMODModule *child; |
| 1137 if (0 == PORT_Strcmp(*index, modulespec)) { |
| 1138 /* avoid trivial infinite recursion */ |
| 1139 PORT_SetError(SEC_ERROR_NO_MODULE); |
| 1140 rv = SECFailure; |
| 1141 break; |
| 1142 } |
1137 child = SECMOD_LoadModule(*index,module,PR_TRUE); | 1143 child = SECMOD_LoadModule(*index,module,PR_TRUE); |
1138 if (!child) break; | 1144 if (!child) break; |
1139 if (child->isCritical && !child->loaded) { | 1145 if (child->isCritical && !child->loaded) { |
1140 int err = PORT_GetError(); | 1146 int err = PORT_GetError(); |
1141 if (!err) | 1147 if (!err) |
1142 err = SEC_ERROR_NO_MODULE; | 1148 err = SEC_ERROR_NO_MODULE; |
1143 SECMOD_DestroyModule(child); | 1149 SECMOD_DestroyModule(child); |
1144 PORT_SetError(err); | 1150 PORT_SetError(err); |
1145 rv = SECFailure; | 1151 rv = SECFailure; |
1146 break; | 1152 break; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1217 | 1223 |
1218 SECMOD_GetReadLock(moduleLock); | 1224 SECMOD_GetReadLock(moduleLock); |
1219 rv = STAN_RemoveModuleFromDefaultTrustDomain(mod); | 1225 rv = STAN_RemoveModuleFromDefaultTrustDomain(mod); |
1220 SECMOD_ReleaseReadLock(moduleLock); | 1226 SECMOD_ReleaseReadLock(moduleLock); |
1221 if (SECSuccess != rv) { | 1227 if (SECSuccess != rv) { |
1222 return SECFailure; | 1228 return SECFailure; |
1223 } | 1229 } |
1224 return SECMOD_DeleteModuleEx(NULL, mod, &atype, PR_FALSE); | 1230 return SECMOD_DeleteModuleEx(NULL, mod, &atype, PR_FALSE); |
1225 } | 1231 } |
1226 | 1232 |
OLD | NEW |