message: Make msg_dup() copy and msg_destroy() free the file name.
authorBen Pfaff <blp@gnu.org>
Mon, 18 Jan 2010 23:59:56 +0000 (15:59 -0800)
committerBen Pfaff <blp@gnu.org>
Mon, 18 Jan 2010 23:59:56 +0000 (15:59 -0800)
commite2a7ada9e445ab2b1fd473345709c39157f30b9a
tree599477462c5219458bd29559c23c9ec69681653f
parent3e30fb40d64fcf006b327a5f81934c14ef842111
message: Make msg_dup() copy and msg_destroy() free the file name.

This fixes a PSPPIRE bug in its message handling (found by inspection).  It
makes copies of messages to use later.  The file names were not being
copied, so in the meantime it was posible that they would be freed,
yielding a use-after-free error.

Since doing this sensibly required changing the file_name member of
struct msg_locator from "const char *" to "char *", it also touches up
places where this caused new warnings.
src/language/data-io/data-reader.c
src/libpspp/message.c
src/libpspp/message.h
src/libpspp/msg-locator.c