diff options
-rw-r--r-- | src/xmldsig.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/xmldsig.c b/src/xmldsig.c index 299ea576..8e156e2c 100644 --- a/src/xmldsig.c +++ b/src/xmldsig.c @@ -986,10 +986,17 @@ xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferen while(pc != NULL) { if(strncmp(refUri, pc->cache, xmlStrlen(refUri)) == 0) { isInProxy = 1; + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_MAX_NUMBER, + "[%s] is already checked by singature-validator.", + refUri); break; } pc = pc->next; } + xmlFree(refUri); } else { /* if proxy is not exist, process references */ xmlSecError(XMLSEC_ERRORS_HERE, @@ -999,15 +1006,8 @@ xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferen "Proxy doesn't exist."); } - if(isInProxy) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_MAX_NUMBER, - "[%s] is already checked by singature-validator.", - xmlGetProp(cur, xmlSecAttrURI)); + if(isInProxy) continue; - } } /* TIZEN CUTUMIZED : check uri only in proxy caches for partial mode */ @@ -1015,7 +1015,6 @@ xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferen int isInProxy = 0; if(dsigCtx->checkReferences != NULL) { - xmlChar* refUri = xmlGetProp(cur, xmlSecAttrURI); if(refUri == NULL) { xmlSecError(XMLSEC_ERRORS_HERE, @@ -1031,10 +1030,17 @@ xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferen while(pc != NULL) { if(xmlSecDecodeCmp(refUri, pc->cache) == 0) { isInProxy = 1; + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_MAX_NUMBER, + "Check [%s] on processing references.", + refUri); break; } pc = pc->next; } + xmlFree(refUri); } else { /* if proxy is not exist, process references */ xmlSecError(XMLSEC_ERRORS_HERE, @@ -1045,15 +1051,8 @@ xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferen } /* if not exist on proxy, skip on processing references */ - if(isInProxy == 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_MAX_NUMBER, - "Skip [%s] on processing references.", - xmlGetProp(cur, xmlSecAttrURI)); + if(isInProxy == 0) continue; - } } /* create reference */ |