From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucian Cojocar Date: Sun, 28 Apr 2013 01:08:10 +0200 Subject: [U-Boot] [PATCH] env: don't add an empty key to the env hashtable In-Reply-To: <20130427223534.0A1F33811D4@gemini.denx.de> References: <1367099787-25602-1-git-send-email-cojocar@gmail.com> <20130427223534.0A1F33811D4@gemini.denx.de> Message-ID: <517C5A5A.2010106@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 04/28/2013 12:35 AM, Wolfgang Denk wrote: > Dear Lucian Cojocar, > > In message <1367099787-25602-1-git-send-email-cojocar@gmail.com> you wrote: >> If the environment contains an entry like "=value" "\0" we should skip >> this key/value. Otherwise, U-Boot will enter in an infinite loop. >> >> Signed-off-by: Lucian Cojocar >> --- >> lib/hashtable.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/lib/hashtable.c b/lib/hashtable.c >> index 07ebfb2..8f5a6f8 100644 >> --- a/lib/hashtable.c >> +++ b/lib/hashtable.c >> @@ -870,6 +870,10 @@ int himport_r(struct hsearch_data *htab, >> *sp++ = '\0'; /* terminate value */ >> ++dp; >> >> + /* skip this entry if the name is empty */ >> + if (*name == 0) >> + continue; > > NAK. This would be a serious error, and silently ignoring this is > downright wrong. > > If such a situation should ever happen, it must cause a fatal error. > I agree. > Could you please explain which exact problem you are trying to fix? > I have to admit that I cannot think of a usage szenario that would > lead to such an error. I had an error (typo) in my predefined environment. Basically I had this: #define CONFIG_EXTRA_ENV_SETTINGS \ "key" "\0" "=value" "\0" It would be nice if U-Boot told me that there was something wrong with my environment rather than just hang. Thanks, Lucian