diff options
author | Paul Smith <psmith@gnu.org> | 2012-09-09 21:56:55 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2012-09-09 21:56:55 +0000 |
commit | a839588fc940a359603dcca47adde5c97fb39aa9 (patch) | |
tree | badd1a144c15e01c117cf4f56a5047b1cc29fc5b | |
parent | 8a0d46468ab12ee2ba920657ac1e76e2946acea2 (diff) | |
download | gunmake-a839588fc940a359603dcca47adde5c97fb39aa9.tar.gz |
Save the variable buffer content, not a potentially old pointer to it.
Fixes Savannah bug #36925.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | file.c | 5 |
2 files changed, 5 insertions, 3 deletions
@@ -1,5 +1,8 @@ 2012-09-09 Paul Smith <psmith@gnu.org> + * file.c (expand_deps): Duplicate the current variable buffer, not + the old pointer. Fixes Savannah bug #36925. + * read.c (eval): If we detect an initial UTF-8 BOM, skip it. Fixes Savannah bug #36529. (record_target_var): Remove unused variable "fname". @@ -573,12 +573,11 @@ expand_deps (struct file *f) "$*" so they'll expand properly. */ if (d->staticpattern) { - char *o; - d->name = o = variable_expand (""); + char *o = variable_expand (""); o = subst_expand (o, name, "%", "$*", 1, 2, 0); *o = '\0'; free (name); - d->name = name = xstrdup (d->name); + d->name = name = xstrdup (variable_buffer); d->staticpattern = 0; } |