From cd6eac77c37e07c1e51856ae94a69b4aa8cd8af9 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Wed, 27 Jan 2010 10:17:09 +0000 Subject: [PATCH] (svn r18923) -Fix [FS#3565]: Check source stationspec exists before copying layouts. --- src/newgrf.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 7a01757b5e..6eb357fe53 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1193,6 +1193,11 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte byte srcid = buf->ReadByte(); const StationSpec *srcstatspec = _cur_grffile->stations[srcid]; + if (srcstatspec == NULL) { + grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy sprite layout to %u.", srcid, stid + i); + continue; + } + statspec->tiles = srcstatspec->tiles; statspec->renderdata = srcstatspec->renderdata; statspec->copied_renderdata = true; @@ -1266,6 +1271,11 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, Byte byte srcid = buf->ReadByte(); const StationSpec *srcstatspec = _cur_grffile->stations[srcid]; + if (srcstatspec == NULL) { + grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy tile layout to %u.", srcid, stid + i); + continue; + } + statspec->lengths = srcstatspec->lengths; statspec->platforms = srcstatspec->platforms; statspec->layouts = srcstatspec->layouts;