Fix LD_LIBMAP.

The r232862 passed the pointer to end of string to lmc_parse() and free().

Submitted by:	Wolfgang Jenkner <wjenkner@inode.at>
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2014-05-18 17:14:08 +00:00
parent 1cb3ec2eb7
commit 490c68de98

View File

@ -80,7 +80,7 @@ lm_init(char *libmap_override)
if (libmap_override) { if (libmap_override) {
/* /*
* Do some character replacement to make $LIBMAP look * Do some character replacement to make $LDLIBMAP look
* like a text file, then parse it. * like a text file, then parse it.
*/ */
libmap_override = xstrdup(libmap_override); libmap_override = xstrdup(libmap_override);
@ -94,8 +94,8 @@ lm_init(char *libmap_override)
break; break;
} }
} }
lmc_parse(p, strlen(p)); lmc_parse(libmap_override, p - libmap_override);
free(p); free(libmap_override);
} }
return (lm_count == 0); return (lm_count == 0);