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>
|
||||
|
||||
Discard torrent file if path data in it contains directory
|
||||
|
|
|
@ -96,10 +96,9 @@ void MetalinkParserController::setFileLengthOfEntry(uint64_t length)
|
|||
return;
|
||||
}
|
||||
if(_tEntry->file.isNull()) {
|
||||
_tEntry->file.reset(new FileEntry(A2STR::NIL, length, 0));
|
||||
} else {
|
||||
_tEntry->file->setLength(length);
|
||||
return;
|
||||
}
|
||||
_tEntry->file->setLength(length);
|
||||
_tEntry->sizeKnown = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ void FilesMetalinkParserState::beginElement
|
|||
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
||||
if(itr != attrs.end()) {
|
||||
std::string name = util::trim((*itr).value);
|
||||
if(util::detectDirTraversal(name)) {
|
||||
if(name.empty() || util::detectDirTraversal(name)) {
|
||||
return;
|
||||
}
|
||||
stm->newEntryTransaction();
|
||||
|
|
|
@ -97,7 +97,7 @@ void MetalinkMetalinkParserStateV4::beginElement
|
|||
if(nsUri == METALINK4_NAMESPACE_URI && localname == FILE) {
|
||||
std::vector<XmlAttr>::const_iterator itr = findAttr(attrs, NAME);
|
||||
if(itr != attrs.end()) {
|
||||
if(util::detectDirTraversal((*itr).value)) {
|
||||
if((*itr).value.empty() || util::detectDirTraversal((*itr).value)) {
|
||||
stm->setSkipTagState();
|
||||
} else {
|
||||
stm->setFileStateV4();
|
||||
|
|
Loading…
Reference in New Issue