Author: ian
Date: Tue Dec 29 21:29:05 2015
New Revision: 292888
URL: https://svnweb.freebsd.org/changeset/base/292888

Log:
  Fix the error checking for the ubenv command.  This moves the check for an
  empty ldvar (which amounts to the varname string starting with '=') into
  the if block that manipulates ldvar, which avoids later referencing ldvar
  when it was never initialized.
  
  Submitted by: Thomas Skibo
  Pointy hat:   ian

Modified:
  head/sys/boot/uboot/common/main.c

Modified: head/sys/boot/uboot/common/main.c
==============================================================================
--- head/sys/boot/uboot/common/main.c   Tue Dec 29 20:51:29 2015        
(r292887)
+++ head/sys/boot/uboot/common/main.c   Tue Dec 29 21:29:05 2015        
(r292888)
@@ -585,6 +585,10 @@ handle_uboot_env_var(enum ubenv_action a
         */
        if (action == UBENV_IMPORT) { 
                len = strcspn(var, "=");
+               if (len == 0) {
+                       printf("name cannot start with '=': '%s'\n", var);
+                       return;
+               }
                if (var[len] == 0) {
                        strcpy(ldvar, "uboot.");
                        strncat(ldvar, var, sizeof(ldvar) - 7);
@@ -604,9 +608,11 @@ handle_uboot_env_var(enum ubenv_action a
                var = &var[6];
        }
 
-       /* If ldvar is malformed or there's no variable name left, punt. */
-       if (ldvar[0] == 0 || var[0] == 0)
+       /* If there is no variable name left, punt. */
+       if (var[0] == 0) {
+               printf("empty variable name\n");
                return;
+       }
 
        val = ub_env_get(var);
        if (action == UBENV_SHOW) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to