system/flashtool.cpp: prevent crash on invalid mtdData access,

ie pos = -1 if system-fs not found;
change sysfs name on apollo


Origin commit data
------------------
Commit: be05be5069
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2013-06-18 (Tue, 18 Jun 2013)
This commit is contained in:
[CST] Focus
2013-06-18 16:23:51 +04:00
parent 1f79fbdde3
commit a2db4efdfd

View File

@@ -577,22 +577,30 @@ std::string CMTDInfo::getMTDName(const int pos)
{ {
// TODO: check /proc/mtd specification to determine mtdname encoding // TODO: check /proc/mtd specification to determine mtdname encoding
return FILESYSTEM_ENCODING_TO_UTF8_STRING(mtdData[pos]->name); if (pos >= 0)
return FILESYSTEM_ENCODING_TO_UTF8_STRING(mtdData[pos]->name);
return "";
} }
std::string CMTDInfo::getMTDFileName(const int pos) std::string CMTDInfo::getMTDFileName(const int pos)
{ {
return mtdData[pos]->filename; if (pos >= 0)
return mtdData[pos]->filename;
return "";
} }
int CMTDInfo::getMTDSize(const int pos) int CMTDInfo::getMTDSize(const int pos)
{ {
return mtdData[pos]->size; if (pos >= 0)
return mtdData[pos]->size;
return 0;
} }
int CMTDInfo::getMTDEraseSize(const int pos) int CMTDInfo::getMTDEraseSize(const int pos)
{ {
return mtdData[pos]->erasesize; if (pos >= 0)
return mtdData[pos]->erasesize;
return 0;
} }
int CMTDInfo::findMTDNumber(const std::string & filename) int CMTDInfo::findMTDNumber(const std::string & filename)
@@ -624,7 +632,11 @@ int CMTDInfo::getMTDEraseSize( const std::string & filename )
std::string CMTDInfo::findMTDsystem() std::string CMTDInfo::findMTDsystem()
{ {
#ifdef BOXMODEL_APOLLO
std::string sysfs = "root0";
#else
std::string sysfs = "systemFS"; std::string sysfs = "systemFS";
#endif
for(int i = 0; i < getMTDCount(); i++) { for(int i = 0; i < getMTDCount(); i++) {
if(getMTDName(i) == sysfs) { if(getMTDName(i) == sysfs) {