From a1a8e694b1f9d043767c9b945cb49ef160122a7e Mon Sep 17 00:00:00 2001 From: Frank Li <Frank.Li@nxp.com> Date: Fri, 25 Jan 2019 13:22:30 -0600 Subject: [PATCH] fixed crash when DONE cmd is not last one Signed-off-by: Frank Li <Frank.Li@nxp.com> --- libuuu/cmd.cpp | 3 +++ libuuu/cmd.h | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libuuu/cmd.cpp b/libuuu/cmd.cpp index c2eeb4e7..ace3f1d6 100644 --- a/libuuu/cmd.cpp +++ b/libuuu/cmd.cpp @@ -166,6 +166,9 @@ int CmdList::run_all(CmdCtx *p, bool dry_run) call_notify(nt); if (ret) return ret; + + if ((*it)->m_lastcmd) + break; } } return ret; diff --git a/libuuu/cmd.h b/libuuu/cmd.h index 6a4796d4..ae4a5188 100644 --- a/libuuu/cmd.h +++ b/libuuu/cmd.h @@ -90,8 +90,9 @@ class CmdBase public: vector<Param> m_param; uint64_t m_timeout; + bool m_lastcmd; std::string m_cmd; - CmdBase() { m_timeout = 2000; }; + CmdBase() { m_timeout = 2000; m_lastcmd = false; }; CmdBase(char *p) { m_timeout = 2000; if (p) m_cmd = p; } void insert_param_info(const char *key, void *pD, Param::Param_Type tp, bool ignore_case = true) { @@ -148,7 +149,7 @@ class CmdObjCreateMap:public map<string, CreateCmdObj> class CmdDone :public CmdBase { public: - CmdDone(char *p) :CmdBase(p) {}; + CmdDone(char *p) :CmdBase(p) { m_lastcmd = true; }; int run(CmdCtx *p); };