diff options
Diffstat (limited to 'source3/nmbd')
-rw-r--r-- | source3/nmbd/nmbd_namelistdb.c | 20 | ||||
-rw-r--r-- | source3/nmbd/nmbd_winsserver.c | 6 |
2 files changed, 24 insertions, 2 deletions
diff --git a/source3/nmbd/nmbd_namelistdb.c b/source3/nmbd/nmbd_namelistdb.c index 60023a7ed5..fb32ce1aad 100644 --- a/source3/nmbd/nmbd_namelistdb.c +++ b/source3/nmbd/nmbd_namelistdb.c @@ -564,15 +564,31 @@ void dump_name_record( struct name_record *namerec, XFILE *fp) x_fprintf(fp,"Source = %s\nb_flags = %x\t", src_type, namerec->data.nb_flags); if(namerec->data.death_time != PERMANENT_TTL) { + const char *asct; tm = localtime(&namerec->data.death_time); - x_fprintf(fp, "death_time = %s\t", asctime(tm)); + if (!tm) { + return; + } + asct = asctime(tm); + if (!asct) { + return; + } + x_fprintf(fp, "death_time = %s\t", asct); } else { x_fprintf(fp, "death_time = PERMANENT\t"); } if(namerec->data.refresh_time != PERMANENT_TTL) { + const char *asct; tm = localtime(&namerec->data.refresh_time); - x_fprintf(fp, "refresh_time = %s\n", asctime(tm)); + if (!tm) { + return; + } + asct = asctime(tm); + if (!asct) { + return; + } + x_fprintf(fp, "refresh_time = %s\n", asct); } else { x_fprintf(fp, "refresh_time = PERMANENT\n"); } diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c index 198d90f35a..29d5c41de8 100644 --- a/source3/nmbd/nmbd_winsserver.c +++ b/source3/nmbd/nmbd_winsserver.c @@ -2222,7 +2222,13 @@ void wins_write_name_record(struct name_record *namerec, XFILE *fp) char *ts, *nl; tm = localtime(&namerec->data.death_time); + if (!tm) { + return; + } ts = asctime(tm); + if (!ts) { + return; + } nl = strrchr( ts, '\n' ); if( NULL != nl ) { *nl = '\0'; |