[GRASS-dev] Re: [GRASS GIS] #718: r.li forgets mask/illegal filename
GRASS GIS
trac at osgeo.org
Fri Aug 14 23:09:24 EDT 2009
#718: r.li forgets mask/illegal filename
------------------------+---------------------------------------------------
Reporter: kyngchaos | Owner: grass-dev at lists.osgeo.org
Type: defect | Status: new
Priority: normal | Milestone: 6.4.0
Component: Raster | Version: 6.4.0 RCs
Resolution: | Keywords: r.li
Platform: All | Cpu: All
------------------------+---------------------------------------------------
Comment (by hamish):
Replying to [comment:13 glynn]:
> Automatic variables (local variables lacking the "static"
> qualifier) without an explicit initialiser are normally
> uninitialised; I have seen compilers which will initialise such
> variables (not necessarily to zero) in debug mode, but I've never
> seen gcc do it (gcc's -g switch controls whether or not debug
> info is added to the output file; it doesn't affect code
> generation in any way, unlike e.g. MSVC where "debug mode"
> disables optimisation by default).
...
> ad is a pointer to a structure which is allocated with
> G_malloc(). This uses malloc, which doesn't normally initialise
> memory (although, again, some implementations will initialise
> malloc()d memory in debug mode, but not usually to zero).
FWIW, my memory was from G_command_history() or somewhere where I used
strncpy() (which unlike strcpy() doesn't always null terminate) and for me
(on Debian) there was no problem as the memory space was all 0s to begin
with & so I didn't notice it. On Markus's system this wasn't true and it
took a while to figure out until I darkly remembered hearing about this
before. It may well be a Debianism.
but anyway, back to the bug, it would seem that worker.c's
mask_preprocessing() should return NULL for ad->mask_name if
G_get_cellhd() fails, but I'm unable to reproduce the problem, so...
Hamish
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/718#comment:14>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list