mirror of https://github.com/aria2/aria2
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Discard metalink:file if its name attribute is empty string. Removed FileEntry instantiation in MetalinkParserController::setFileLengthOfEntry() * src/MetalinkParserController.cc * src/MetalinkParserStateV3Impl.cc * src/MetalinkParserStateV4Impl.ccpull/1/head
parent
dc2a51b54a
commit
20d78285a8
|
@ -1,3 +1,12 @@
|
||||||
|
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Discard metalink:file if its name attribute is empty string.
|
||||||
|
Removed FileEntry instantiation in
|
||||||
|
MetalinkParserController::setFileLengthOfEntry()
|
||||||
|
* src/MetalinkParserController.cc
|
||||||
|
* src/MetalinkParserStateV3Impl.cc
|
||||||
|
* src/MetalinkParserStateV4Impl.cc
|
||||||
|
|
||||||
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Discard torrent file if path data in it contains directory
|
Discard torrent file if path data in it contains directory
|
||||||
|
|
|
@ -96,10 +96,9 @@ void MetalinkParserController::setFileLengthOfEntry(uint64_t length)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(_tEntry->file.isNull()) {
|
if(_tEntry->file.isNull()) {
|
||||||
_tEntry->file.reset(new FileEntry(A2STR::NIL, length, 0));
|
return;
|
||||||
} else {
|
|
||||||
_tEntry->file->setLength(length);
|
|
||||||
}
|
}
|
||||||
|
_tEntry->file->setLength(length);
|
||||||
_tEntry->sizeKnown = true;
|
_tEntry->sizeKnown = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ void FilesMetalinkParserState::beginElement
|
||||||
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
||||||
if(itr != attrs.end()) {
|
if(itr != attrs.end()) {
|
||||||
std::string name = util::trim((*itr).value);
|
std::string name = util::trim((*itr).value);
|
||||||
if(util::detectDirTraversal(name)) {
|
if(name.empty() || util::detectDirTraversal(name)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
stm->newEntryTransaction();
|
stm->newEntryTransaction();
|
||||||
|
|
|
@ -97,7 +97,7 @@ void MetalinkMetalinkParserStateV4::beginElement
|
||||||
if(nsUri == METALINK4_NAMESPACE_URI && localname == FILE) {
|
if(nsUri == METALINK4_NAMESPACE_URI && localname == FILE) {
|
||||||
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
||||||
if(itr != attrs.end()) {
|
if(itr != attrs.end()) {
|
||||||
if(util::detectDirTraversal((*itr).value)) {
|
if((*itr).value.empty() || util::detectDirTraversal((*itr).value)) {
|
||||||
stm->setSkipTagState();
|
stm->setSkipTagState();
|
||||||
} else {
|
} else {
|
||||||
stm->setFileStateV4();
|
stm->setFileStateV4();
|
||||||
|
|
Loading…
Reference in New Issue