Signed-off-by: Niv Shetrit <niv.shet...@altair-semi.com>
---
 common/cli_hush.c | 73 ++++++++++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 35 deletions(-)

diff --git a/common/cli_hush.c b/common/cli_hush.c
index 8f86e4aa4a..c14302c3ad 100644
--- a/common/cli_hush.c
+++ b/common/cli_hush.c
@@ -3539,41 +3539,44 @@ static char *insert_var_value_sub(char *inp, int 
tag_subst)
                }
                inp = ++p;
                /* find the ending marker */
-               p = strchr(inp, SPECIAL_VAR_SYMBOL);
-               *p = '\0';
-               /* look up the value to substitute */
-               if ((p1 = lookup_param(inp))) {
-                       if (tag_subst)
-                               len = res_str_len + strlen(p1) + 2;
-                       else
-                               len = res_str_len + strlen(p1);
-                       res_str = xrealloc(res_str, (1 + len));
-                       if (tag_subst) {
-                               /*
-                                * copy the variable value to the result
-                                * string
-                                */
-                               strcpy((res_str + res_str_len + 1), p1);
-
-                               /*
-                                * mark the replaced text to be accepted as
-                                * is
-                                */
-                               res_str[res_str_len] = SUBSTED_VAR_SYMBOL;
-                               res_str[res_str_len + 1 + strlen(p1)] =
-                                       SUBSTED_VAR_SYMBOL;
-                       } else
-                               /*
-                                * copy the variable value to the result
-                                * string
-                                */
-                               strcpy((res_str + res_str_len), p1);
-
-                       res_str_len = len;
-               }
-               *p = SPECIAL_VAR_SYMBOL;
-               inp = ++p;
-               done = 1;
+               p = strchr(inp, SPECIAL_VAR_SYMBOL)
+               if (p != NULL) {
+                       *p = '\0';
+                       /* look up the value to substitute */
+                       p1 = lookup_param(inp)
+                       if (p1 != NULL) {
+                               if (tag_subst)
+                                       len = res_str_len + strlen(p1) + 2;
+                               else
+                                       len = res_str_len + strlen(p1);
+                               res_str = xrealloc(res_str, (1 + len));
+                               if (tag_subst) {
+                                       /*
+                                        * copy the variable value to the
+                                        * result string
+                                        */
+                                       strcpy((res_str + res_str_len + 1), p1);
+
+                                       /*
+                                        * mark the replaced text to be
+                                        * accepted as is
+                                        */
+                                       res_str[res_str_len] = 
SUBSTED_VAR_SYMBOL;
+                                       res_str[res_str_len + 1 + strlen(p1)] =
+                                               SUBSTED_VAR_SYMBOL;
+                               } else
+                                       /*
+                                        * copy the variable value to the result
+                                        * string
+                                        */
+                                       strcpy((res_str + res_str_len), p1);
+
+                               res_str_len = len;
+                       }
+                       *p = SPECIAL_VAR_SYMBOL;
+                       inp = ++p;
+                       done = 1;
+               }
        }
        if (done) {
                res_str = xrealloc(res_str, (1 + res_str_len + strlen(inp)));
-- 
2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to