-$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.0 $ $NHDT-Date: 1583332314 2020/03/04 14:31:54 $
+$NHDT-Branch: NetHack-3.6-Mar2020 $:$NHDT-Revision: 1.1 $ $NHDT-Date: 1583445339 2020/03/05 21:55:39 $
fixes36.6 contains a terse summary of changes made to 3.6.5 in order to
produce 3.6.6 as well as any post-release fixes in binaries.
formatting corpse names used internal buffers differently from formatting
other objects and could potentially clobber memory
avoid divide by 0 crash if 'bogusmon' (file of bogus monster types) is empty
+avoid #wizrumorcheck crash if either 'rumors.tru' or 'rumors.fal' or both
+ were empty when makedefs built 'rumors'
Platform- and/or Interface-Specific Fixes or Features
-/* NetHack 3.6 rumors.c $NHDT-Date: 1582364450 2020/02/22 09:40:50 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.51 $ */
+/* NetHack 3.6 rumors.c $NHDT-Date: 1583445339 2020/03/05 21:55:39 $ $NHDT-Branch: NetHack-3.6-Mar2020 $:$NHDT-Revision: 1.38 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
couldnt_open_file(RUMORFILE);
true_rumor_size = -1; /* don't try to open it again */
}
-/* this is safe either way, so do it always since we can't get the definition
- * out of makedefs.c
- */
+
+ /* this is safe either way, so do it always since we can't get the
+ * definition out of makedefs.c
+ */
#define PAD_RUMORS_TO
#ifdef PAD_RUMORS_TO
/* remove padding */
char *endp, line[BUFSZ], xbuf[BUFSZ], rumor_buf[BUFSZ];
if (true_rumor_size < 0L) { /* we couldn't open RUMORFILE */
- no_rumors:
+ no_rumors:
pline("rumors not accessible.");
- if (rumors)
- (void) dlb_fclose(rumors);
return;
}
rumor_buf[0] = '\0';
if (true_rumor_size == 0L) { /* if this is 1st outrumor() */
init_rumors(rumors);
- if (true_rumor_size < 0L)
+ if (true_rumor_size < 0L) {
+ rumors = (dlb *) 0; /* init_rumors() closes it upon failure */
goto no_rumors; /* init failed */
+ }
}
tmpwin = create_nhwindow(NHW_TEXT);
/*
* reveal the values.
*/
-
- Sprintf(
- rumor_buf,
- "T start=%06ld (%06lx), end=%06ld (%06lx), size=%06ld (%06lx)",
- (long) true_rumor_start, true_rumor_start, true_rumor_end,
- (unsigned long) true_rumor_end, true_rumor_size,
- (unsigned long) true_rumor_size);
+ Sprintf(rumor_buf,
+ "T start=%06ld (%06lx), end=%06ld (%06lx), size=%06ld (%06lx)",
+ (long) true_rumor_start, true_rumor_start,
+ true_rumor_end, (unsigned long) true_rumor_end,
+ true_rumor_size, (unsigned long) true_rumor_size);
putstr(tmpwin, 0, rumor_buf);
-
- Sprintf(
- rumor_buf,
- "F start=%06ld (%06lx), end=%06ld (%06lx), size=%06ld (%06lx)",
- (long) false_rumor_start, false_rumor_start, false_rumor_end,
- (unsigned long) false_rumor_end, false_rumor_size,
- (unsigned long) false_rumor_size);
+ Sprintf(rumor_buf,
+ "F start=%06ld (%06lx), end=%06ld (%06lx), size=%06ld (%06lx)",
+ (long) false_rumor_start, false_rumor_start,
+ false_rumor_end, (unsigned long) false_rumor_end,
+ false_rumor_size, (unsigned long) false_rumor_size);
putstr(tmpwin, 0, rumor_buf);
/*