Add paranoid printing using strvisx.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@25332 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2009-07-15 23:31:55 +00:00
parent d07832d6d7
commit 2b54af87e9

View File

@@ -32,6 +32,7 @@
*/
#include "krb5_locl.h"
#include <vis.h>
struct facility {
int min;
@@ -218,11 +219,21 @@ log_file(const char *timestr,
void *data)
{
struct file_data *f = data;
char *msgclean;
size_t len = strlen(msg) + 1;
if(f->keep_open == 0)
f->fd = fopen(f->filename, f->mode);
if(f->fd == NULL)
return;
fprintf(f->fd, "%s %s\n", timestr, msg);
/* make sure the log doesn't contain special chars */
len *= 4;
msgclean = malloc(len);
if (msgclean == NULL)
goto out;
strvisx(rk_UNCONST(msg), msgclean, len, VIS_OCTAL);
fprintf(f->fd, "%s %s\n", timestr, msgclean);
free(msgclean);
out:
if(f->keep_open == 0) {
fclose(f->fd);
f->fd = NULL;