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:
@@ -32,6 +32,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "krb5_locl.h"
|
#include "krb5_locl.h"
|
||||||
|
#include <vis.h>
|
||||||
|
|
||||||
struct facility {
|
struct facility {
|
||||||
int min;
|
int min;
|
||||||
@@ -218,11 +219,21 @@ log_file(const char *timestr,
|
|||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
struct file_data *f = data;
|
struct file_data *f = data;
|
||||||
|
char *msgclean;
|
||||||
|
size_t len = strlen(msg) + 1;
|
||||||
if(f->keep_open == 0)
|
if(f->keep_open == 0)
|
||||||
f->fd = fopen(f->filename, f->mode);
|
f->fd = fopen(f->filename, f->mode);
|
||||||
if(f->fd == NULL)
|
if(f->fd == NULL)
|
||||||
return;
|
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) {
|
if(f->keep_open == 0) {
|
||||||
fclose(f->fd);
|
fclose(f->fd);
|
||||||
f->fd = NULL;
|
f->fd = NULL;
|
||||||
|
Reference in New Issue
Block a user