X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=builtins%2Fcommand.def;h=6e6e5f60b0f50acb7cec44ed2931ba03750e4c27;hb=d166f048818e10cf3799aa24a174fb22835f1acc;hp=3a14dc6451f2c2b04d5873d6c1acc2ca19a02331;hpb=ccc6cda312fea9f0468ee65b8f368e9653e1380b;p=platform%2Fupstream%2Fbash.git diff --git a/builtins/command.def b/builtins/command.def index 3a14dc6..6e6e5f6 100644 --- a/builtins/command.def +++ b/builtins/command.def @@ -117,13 +117,10 @@ command_builtin (list) if (use_standard_path) { old_path = get_string_value ("PATH"); + /* If old_path is NULL, $PATH is unset. If so, we want to make sure + it's unset after this command completes. */ if (old_path) old_path = savestring (old_path); - else - { - old_path = xmalloc (1); - old_path[0] = '\0'; - } add_unwind_protect ((Function *)restore_path, old_path); standard_path = get_standard_path (); @@ -162,8 +159,13 @@ static void restore_path (var) char *var; { - bind_variable ("PATH", var); - free (var); + if (var) + { + bind_variable ("PATH", var); + free (var); + } + else + unbind_variable ("PATH"); } /* Return a value for PATH that is guaranteed to find all of the standard