in nuget-common/src/jetbrains/buildServer/nuget/common/index/NuGetPackageStructureVisitor.java [34:63]
public void visit(@NotNull InputStream stream) {
if(myAnalysers.isEmpty()) return;
ZipSlipAwareZipInputStream zipInputStream = null;
try {
zipInputStream = new ZipSlipAwareZipInputStream(new BufferedInputStream(stream));
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
if(zipEntry.isDirectory()) continue;
final String zipEntryName = zipEntry.getName();
for(NuGetPackageStructureAnalyser analyser : myAnalysers){
analyser.analyseEntry(zipEntryName);
}
if (zipEntryName.endsWith(FeedConstants.NUSPEC_FILE_EXTENSION)) {
LOG.debug(String.format("Nuspec file found on path %s in NuGet package", zipEntryName));
final NuspecFileContent nuspecContent = readNuspecFileContent(zipInputStream);
if (nuspecContent == null)
LOG.warn("Failed to read .nuspec file content from NuGet package");
else {
for(NuGetPackageStructureAnalyser analyser : myAnalysers){
analyser.analyseNuspecFile(nuspecContent);
}
}
zipInputStream.closeEntry();
}
}
} catch (IOException e) {
LOG.warn("Failed to read content of NuGet package");
FileUtil.close(zipInputStream);
}
}