[GRASSLIST:9863] Re: r.mapcalc causing segmentation violation
Huidae Cho
grass4u at gmail.com
Mon Jan 16 18:34:57 EST 2006
Hi,
I've applied the patch.
Thank you.
Huidae Cho
On Mon, Jan 16, 2006 at 11:42:34PM +0100, Markus Neteler wrote:
> Hi Ralf,
>
> we hope that the r.mapcalc developer looks into this asap.
> It also crashes for me (apparently a rater new problem).
>
> Markus
>
> On Sun, Jan 15, 2006 at 11:12:51PM +0100, Ralf Gerlich wrote:
> > Hi again,
> >
> > I have dug a little deeper and realised that it's not the NULL_ROWS, but
> > the fd that is wrong.
> >
> > >#1 0xb7f5cd7d in get_null_value_row (fd=0, flags=0x80851f0 "\001\001\001",
> > > row=1, with_mask=1) at get_row.c:1021
> > >#2 0xb7f5d35a in get_map_row (fd=0, rast=0x805f360, row=1, data_type=1,
> > > null_is_zero=0, with_mask=1) at get_row.c:1067
> > >#3 0x08055b9d in read_row (fd=0, buf=0x805f360 "", row=1, dummy=0)
> > > at map.c:227
> >
> > All these have fd=0, which seems odd, as the fd in the source map
> > structure is originally !=0.
> >
> > Digging further I found that this happened in column_shift due to
> > missing breaks in the col<0 part. Adding the breaks fixed the crash.
> >
> > I have attached the very small patch.
> >
> > Best regards,
> > Ralf Gerlich
>
> > ? raster/r.mapcalc/OBJ.i486-pc-linux-gnu
> > ? raster/r.mapcalc/lex.yy.c
> > ? raster/r.mapcalc/y.tab.c
> > ? raster/r.mapcalc/y.tab.h
> > Index: raster/r.mapcalc/column_shift.c
> > ===================================================================
> > RCS file: /home/grass/grassrepository/grass6/raster/r.mapcalc/column_shift.c,v
> > retrieving revision 2.1
> > diff -u -r2.1 column_shift.c
> > --- raster/r.mapcalc/column_shift.c 2 Jan 2006 22:23:32 -0000 2.1
> > +++ raster/r.mapcalc/column_shift.c 15 Jan 2006 21:52:22 -0000
> > @@ -69,6 +69,7 @@
> >
> > for (; i >= 0; i--)
> > SET_NULL_C(&ibuf[i]);
> > + break;
> >
> > case FCELL_TYPE:
> > for (i = columns - 1; i >= col; i--) {
> > @@ -80,6 +81,7 @@
> >
> > for (; i >= 0; i--)
> > SET_NULL_F(&fbuf[i]);
> > + break;
> >
> > case DCELL_TYPE:
> > for (i = columns - 1; i >= col; i--) {
> > @@ -91,6 +93,8 @@
> >
> > for (; i >= 0; i--)
> > SET_NULL_D(&dbuf[i]);
> > + break;
> > +
> > }
> > }
> > }
>
>
> --
> Markus Neteler <neteler itc it> http://mpa.itc.it
> ITC-irst - Centro per la Ricerca Scientifica e Tecnologica
> MPBA - Predictive Models for Biol. & Environ. Data Analysis
> Via Sommarive, 18 - 38050 Povo (Trento), Italy
>
More information about the grass-user
mailing list