This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
A few NWX table additions for bulletins in our data stream.
stf.bull:
FPUS61 KCTP (replaces KPBZ)
FPUS65 KVEF (Southern Nevada)
rgtmpc.stn:
RTPAJK
RTPFGZ
RTPMEM
RTPSJT
RTPTLH
smw.bull:
WHUS51 KBOX (KBOS is in the table currently)
mws.bull:
FZAK87 PAJK
Also,
in srchw.c I have a core dump when a bulletin has '\0' in it.
In_getrpt(), line 648 currently has:
iepos = (int) strchr( &text[reportInfo[srchinfo->current].position],
CHCTLC);
strchr can return NULL when a '\0' in a bulletin occurs before CHCTLC is
found. As a result, the calculation
rep_len = iepos - ispos;
leads to an enormous rep_len value causing the strncpy() command in line 651
to blow up.
I changed the strchr command to memchr, and added a check for iepos = 0.
iepos = (int)memchr (&text[reportInfo[srchinfo->current].position],
CHCTLC,
(srchinfo->file_info.file_len -
reportInfo[srchinfo->current].position));
if(iepos != 0)
rep_len = iepos - ispos;
else
rep_len = 0;
Steve
---------------------------------------------
Steve Chiswell
Unidata User Support