From a25bc90d7bc857dce3b0fe5e58c77df8787a90c4 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Sat, 1 Mar 2014 21:16:29 +0100 Subject: [PATCH] hdd_menu: improve error resilience in getFmtType() --- src/gui/hdd_menu.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 0087c5219..e1ee63f33 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -105,14 +105,18 @@ std::string getFmtType(const char* name, int num) FILE* f = my_popen(pid, pcmd.c_str(), "r"); if (f != NULL) { char buff[512]; - fgets(buff, sizeof(buff), f); + if (!fgets(buff, sizeof(buff), f)) + buff[0] = '\0'; fclose(f); ret = buff; std::string search = "TYPE=\""; size_t pos = ret.find(search); + if (pos == std::string::npos) + return ""; ret = ret.substr(pos + search.length()); pos = ret.find("\""); - ret = ret.substr(0, pos); + if (pos != std::string::npos) + ret = ret.substr(0, pos); } return ret; }