[GRASS-dev] [GRASS GIS] #801: r.le.patch crashes with -c flag

#801: r.le.patch crashes with -c flag
--------------------------------+-------------------------------------------
Reporter: wilsonadam | Owner: grass-dev@lists.osgeo.org
     Type: defect | Status: new
Priority: normal | Milestone: 6.4.0
Component: default | Version: 6.4.0 RCs
Keywords: segmentation fault | Platform: Linux
      Cpu: x86-64 |
--------------------------------+-------------------------------------------
I am trying to run r.le.patch to create a map of separate 'patches' using
the -c flag to drop the edges and only keep core areas of a certain size.

To recreate this:

{{{

g.region n=1 s=0 e=1 w=0 res=.01 ## Make some region
r.random.surface output=surface ## create a raster to use as input
r.random input=surface n=10 raster_output=points ## create some random
points
r.grow input=points radius=10 output=patch ## grow them to make 'patches'
r.le.patch -n map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -n flag
to identify the patches by number - it works fine
r.le.patch -c map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -c flag
to identify only 'core areas' - it crashes!
}}}

It segfaults with the error shown below. I am running the GRASS6.4.0RC5
checked out and compiled this morning on Fedora 11 2.6.30.9-90.fc11.x86_64

Any ideas? Am I doing something wrong or is this a bug? I've tried
several settings for the co1 and c02 and it crashes with every combination
I have tried.

Thanks for any help.

###########################################################

{{{
GRASS 6.4.0RC5 (CFR):/media/Data > r.le.patch -c map=patch sam=w co1=2
co2=c1

PARAMETER CHOICES:
     MAP: patch
     SAMPLE: whole map TRACING: 8 neighbor
     OUTPUT MAPS:
           interior
     CORE MEASURES:
           mean core size

R.LE.PATCH IS WORKING....;

*** glibc detected *** r.le.patch: double free or corruption (out):
0x0000000001c92be0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x39e5e75a96]
r.le.patch(cell_clip+0x8fa)[0x417cea]
r.le.patch(cell_clip_drv+0x18c)[0x4180dc]
r.le.patch(patch_fore+0x98)[0x40c2d8]
r.le.patch(main+0x4fe)[0x40e61e]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x39e5e1ea2d]
r.le.patch[0x403109]
======= Memory map: ========
00400000-0041d000 r-xp 00000000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
0061d000-0061e000 rw-p 0001d000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
01c4c000-01caf000 rw-p 00000000 00:00 0
[heap]
39e5a00000-39e5a1f000 r-xp 00000000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1e000-39e5c1f000 r--p 0001e000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1f000-39e5c20000 rw-p 0001f000 fd:00 45132
/lib64/ld-2.10.1.so
39e5e00000-39e5f64000 r-xp 00000000 fd:00 45133
/lib64/libc-2.10.1.so
39e5f64000-39e6164000 ---p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6164000-39e6168000 r--p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6168000-39e6169000 rw-p 00168000 fd:00 45133
/lib64/libc-2.10.1.so
39e6169000-39e616e000 rw-p 00000000 00:00 0
39e6200000-39e6282000 r-xp 00000000 fd:00 54274
/lib64/libm-2.10.1.so
39e6282000-39e6482000 ---p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6482000-39e6483000 r--p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6483000-39e6484000 rw-p 00083000 fd:00 54274
/lib64/libm-2.10.1.so
39e6600000-39e6602000 r-xp 00000000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6602000-39e6802000 ---p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6802000-39e6803000 r--p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6803000-39e6804000 rw-p 00003000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6a00000-39e6a15000 r-xp 00000000 fd:00 56006
/lib64/libz.so.1.2.3
39e6a15000-39e6c14000 ---p 00015000 fd:00 56006
/lib64/libz.so.1.2.3
39e6c14000-39e6c15000 rw-p 00014000 fd:00 56006
/lib64/libz.so.1.2.3
39f0400000-39f0419000 r-xp 00000000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0419000-39f0619000 ---p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0619000-39f061a000 rw-p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
7f308a2da000-7f308f3ad000 r--p 00000000 fd:00 56067
/usr/lib/locale/locale-archive
7f308f3ad000-7f308f3b0000 rw-p 00000000 00:00 0
7f308f3d2000-7f308f3da000 r-xp 00000000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f3da000-7f308f5d9000 ---p 00008000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5d9000-7f308f5da000 rw-p 00007000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5da000-7f308f5db000 rw-p 00000000 00:00 0
7f308f5db000-7f308f62c000 r-xp 00000000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f62c000-7f308f82c000 ---p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82c000-7f308f82e000 rw-p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82e000-7f308f838000 rw-p 00000000 00:00 0
7fffcf185000-7fffcf19a000 rw-p 00000000 00:00 0
[stack]
7fffcf1ee000-7fffcf1ef000 r-xp 0000000Aborted
}}}

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/801&gt;
GRASS GIS <http://grass.osgeo.org>

#801: r.le.patch crashes with -c flag
-------------------------+--------------------------------------------------
  Reporter: wilsonadam | Owner: grass-dev@lists.osgeo.org
      Type: defect | Status: new
  Priority: normal | Milestone: 6.4.0
Component: default | Version: 6.4.0 RCs
Resolution: | Keywords: segmentation fault
  Platform: Linux | Cpu: x86-64
-------------------------+--------------------------------------------------
Old description:

I am trying to run r.le.patch to create a map of separate 'patches' using
the -c flag to drop the edges and only keep core areas of a certain size.

To recreate this:

{{{

g.region n=1 s=0 e=1 w=0 res=.01 ## Make some region
r.random.surface output=surface ## create a raster to use as input
r.random input=surface n=10 raster_output=points ## create some random
points
r.grow input=points radius=10 output=patch ## grow them to make 'patches'
r.le.patch -n map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -n flag
to identify the patches by number - it works fine
r.le.patch -c map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -c flag
to identify only 'core areas' - it crashes!
}}}

It segfaults with the error shown below. I am running the GRASS6.4.0RC5
checked out and compiled this morning on Fedora 11
2.6.30.9-90.fc11.x86_64

Any ideas? Am I doing something wrong or is this a bug? I've tried
several settings for the co1 and c02 and it crashes with every
combination I have tried.

Thanks for any help.

###########################################################

{{{
GRASS 6.4.0RC5 (CFR):/media/Data > r.le.patch -c map=patch sam=w co1=2
co2=c1

PARAMETER CHOICES:
    MAP: patch
    SAMPLE: whole map TRACING: 8 neighbor
    OUTPUT MAPS:
          interior
    CORE MEASURES:
          mean core size

R.LE.PATCH IS WORKING....;

*** glibc detected *** r.le.patch: double free or corruption (out):
0x0000000001c92be0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x39e5e75a96]
r.le.patch(cell_clip+0x8fa)[0x417cea]
r.le.patch(cell_clip_drv+0x18c)[0x4180dc]
r.le.patch(patch_fore+0x98)[0x40c2d8]
r.le.patch(main+0x4fe)[0x40e61e]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x39e5e1ea2d]
r.le.patch[0x403109]
======= Memory map: ========
00400000-0041d000 r-xp 00000000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
0061d000-0061e000 rw-p 0001d000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
01c4c000-01caf000 rw-p 00000000 00:00 0
[heap]
39e5a00000-39e5a1f000 r-xp 00000000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1e000-39e5c1f000 r--p 0001e000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1f000-39e5c20000 rw-p 0001f000 fd:00 45132
/lib64/ld-2.10.1.so
39e5e00000-39e5f64000 r-xp 00000000 fd:00 45133
/lib64/libc-2.10.1.so
39e5f64000-39e6164000 ---p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6164000-39e6168000 r--p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6168000-39e6169000 rw-p 00168000 fd:00 45133
/lib64/libc-2.10.1.so
39e6169000-39e616e000 rw-p 00000000 00:00 0
39e6200000-39e6282000 r-xp 00000000 fd:00 54274
/lib64/libm-2.10.1.so
39e6282000-39e6482000 ---p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6482000-39e6483000 r--p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6483000-39e6484000 rw-p 00083000 fd:00 54274
/lib64/libm-2.10.1.so
39e6600000-39e6602000 r-xp 00000000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6602000-39e6802000 ---p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6802000-39e6803000 r--p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6803000-39e6804000 rw-p 00003000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6a00000-39e6a15000 r-xp 00000000 fd:00 56006
/lib64/libz.so.1.2.3
39e6a15000-39e6c14000 ---p 00015000 fd:00 56006
/lib64/libz.so.1.2.3
39e6c14000-39e6c15000 rw-p 00014000 fd:00 56006
/lib64/libz.so.1.2.3
39f0400000-39f0419000 r-xp 00000000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0419000-39f0619000 ---p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0619000-39f061a000 rw-p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
7f308a2da000-7f308f3ad000 r--p 00000000 fd:00 56067
/usr/lib/locale/locale-archive
7f308f3ad000-7f308f3b0000 rw-p 00000000 00:00 0
7f308f3d2000-7f308f3da000 r-xp 00000000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f3da000-7f308f5d9000 ---p 00008000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5d9000-7f308f5da000 rw-p 00007000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5da000-7f308f5db000 rw-p 00000000 00:00 0
7f308f5db000-7f308f62c000 r-xp 00000000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f62c000-7f308f82c000 ---p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82c000-7f308f82e000 rw-p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82e000-7f308f838000 rw-p 00000000 00:00 0
7fffcf185000-7fffcf19a000 rw-p 00000000 00:00 0
[stack]
7fffcf1ee000-7fffcf1ef000 r-xp 0000000Aborted
}}}

New description:

I am trying to run r.le.patch to create a map of separate 'patches' using
the -c flag to drop the edges and only keep core areas of a certain size.

To recreate this:

{{{

g.region n=1 s=0 e=1 w=0 res=.01 ## Make some region
r.random.surface output=surface ## create a raster to use as input
r.random input=surface n=10 raster_output=points ## create some random
points
r.grow input=points radius=10 output=patch ## grow them to make 'patches'
r.le.patch -n map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -n flag
to identify the patches by number - it works fine
r.le.patch -c map=patch sam=w co1=2 co2=c1 ## run r.le.patch with -c flag
to identify only 'core areas' - it crashes!
}}}

It segfaults with the error shown below. I am running the GRASS6.4.0RC5
checked out and compiled this morning on Fedora 11 2.6.30.9-90.fc11.x86_64

Any ideas? Am I doing something wrong or is this a bug? I've tried
several settings for the co1 and c02 and it crashes with every combination
I have tried.

Thanks for any help.

###########################################################

{{{
GRASS 6.4.0RC5 (CFR):/media/Data > r.le.patch -c map=patch sam=w co1=2
co2=c1

PARAMETER CHOICES:
     MAP: patch
     SAMPLE: whole map TRACING: 8 neighbor
     OUTPUT MAPS:
           interior
     CORE MEASURES:
           mean core size

R.LE.PATCH IS WORKING....;

*** glibc detected *** r.le.patch: double free or corruption (out):
0x0000000001c92be0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x39e5e75a96]
r.le.patch(cell_clip+0x8fa)[0x417cea]
r.le.patch(cell_clip_drv+0x18c)[0x4180dc]
r.le.patch(patch_fore+0x98)[0x40c2d8]
r.le.patch(main+0x4fe)[0x40e61e]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x39e5e1ea2d]
r.le.patch[0x403109]
======= Memory map: ========
00400000-0041d000 r-xp 00000000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
0061d000-0061e000 rw-p 0001d000 fd:00 341102
/usr/local/grass-6.4.0RC5/bin/r.le.patch
01c4c000-01caf000 rw-p 00000000 00:00 0
[heap]
39e5a00000-39e5a1f000 r-xp 00000000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1e000-39e5c1f000 r--p 0001e000 fd:00 45132
/lib64/ld-2.10.1.so
39e5c1f000-39e5c20000 rw-p 0001f000 fd:00 45132
/lib64/ld-2.10.1.so
39e5e00000-39e5f64000 r-xp 00000000 fd:00 45133
/lib64/libc-2.10.1.so
39e5f64000-39e6164000 ---p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6164000-39e6168000 r--p 00164000 fd:00 45133
/lib64/libc-2.10.1.so
39e6168000-39e6169000 rw-p 00168000 fd:00 45133
/lib64/libc-2.10.1.so
39e6169000-39e616e000 rw-p 00000000 00:00 0
39e6200000-39e6282000 r-xp 00000000 fd:00 54274
/lib64/libm-2.10.1.so
39e6282000-39e6482000 ---p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6482000-39e6483000 r--p 00082000 fd:00 54274
/lib64/libm-2.10.1.so
39e6483000-39e6484000 rw-p 00083000 fd:00 54274
/lib64/libm-2.10.1.so
39e6600000-39e6602000 r-xp 00000000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6602000-39e6802000 ---p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6802000-39e6803000 r--p 00002000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6803000-39e6804000 rw-p 00003000 fd:00 56013
/lib64/libdl-2.10.1.so
39e6a00000-39e6a15000 r-xp 00000000 fd:00 56006
/lib64/libz.so.1.2.3
39e6a15000-39e6c14000 ---p 00015000 fd:00 56006
/lib64/libz.so.1.2.3
39e6c14000-39e6c15000 rw-p 00014000 fd:00 56006
/lib64/libz.so.1.2.3
39f0400000-39f0419000 r-xp 00000000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0419000-39f0619000 ---p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
39f0619000-39f061a000 rw-p 00019000 fd:00 116332
/lib64/libgcc_s-4.4.1-20090729.so.1
7f308a2da000-7f308f3ad000 r--p 00000000 fd:00 56067
/usr/lib/locale/locale-archive
7f308f3ad000-7f308f3b0000 rw-p 00000000 00:00 0
7f308f3d2000-7f308f3da000 r-xp 00000000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f3da000-7f308f5d9000 ---p 00008000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5d9000-7f308f5da000 rw-p 00007000 fd:00 358068
/usr/local/grass-6.4.0RC5/lib/libgrass_datetime.6.4.0RC5.so
7f308f5da000-7f308f5db000 rw-p 00000000 00:00 0
7f308f5db000-7f308f62c000 r-xp 00000000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f62c000-7f308f82c000 ---p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82c000-7f308f82e000 rw-p 00051000 fd:00 358108
/usr/local/grass-6.4.0RC5/lib/libgrass_gis.6.4.0RC5.so
7f308f82e000-7f308f838000 rw-p 00000000 00:00 0
7fffcf185000-7fffcf19a000 rw-p 00000000 00:00 0
[stack]
7fffcf1ee000-7fffcf1ef000 r-xp 0000000Aborted
}}}

It crashes with G_free() in trace.c line 339.

Comment (by neteler):

Here a backtrace:

{{{
GRASS 6.4.0svn (spearfish60):~ > r.le.patch -c map=patch sam=w co1=2
co2=c1

PARAMETER CHOICES:
         MAP: patch
         SAMPLE: whole map TRACING: 8 neighbor
         OUTPUT MAPS:
interior
         CORE MEASURES:
mean core size

R.LE.PATCH IS WORKING....;

Aborted patch 10

GRASS 6.4.0svn (spearfish60):~ > gdb r.le.patch
GNU gdb 6.8-6mdv2009.1 (Mandriva Linux release 2009.1)
...
This GDB was configured as "x86_64-mandriva-linux-gnu"...
(gdb) r -c map=patch sam=w co1=2 co2=c1
Starting program: /home/neteler/grass64/dist.x86_64-unknown-linux-
gnu/bin/r.le.patch -c map=patch sam=w co1=2 co2=c1

PARAMETER CHOICES:
         MAP: patch
         SAMPLE: whole map TRACING: 8 neighbor
         OUTPUT MAPS:
interior
         CORE MEASURES:
mean core size

R.LE.PATCH IS WORKING....;

Tracing patch 10
Program received signal SIGABRT, Aborted.
0x00007fe8a0f84a15 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007fe8a0f84a15 in raise () from /lib64/libc.so.6
#1 0x00007fe8a0f86243 in abort () from /lib64/libc.so.6
#2 0x00007fe8a0fc59d0 in ?? () from /lib64/libc.so.6
#3 0x00007fe8a196b1fa in G_free (buf=0x249aae0) at alloc.c:129
#4 0x0000000000417b49 in cell_clip_drv (col0=0, row0=0, ncols=100,
nrows=100, value=0x0, index=0, radius=0)
     at trace.c:339
#5 0x000000000040d221 in whole_reg_driver () at driver.c:2816
#6 0x0000000000403342 in patch_fore () at driver.c:115
#7 0x000000000041014e in main (argc=6, argv=0x7fffe6d0f2d8) at main.c:197
(gdb) bt full
#0 0x00007fe8a0f84a15 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007fe8a0f86243 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007fe8a0fc59d0 in ?? () from /lib64/libc.so.6
No symbol table info available.
#3 0x00007fe8a196b1fa in G_free (buf=0x249aae0) at alloc.c:129
No locals.
#4 0x0000000000417b49 in cell_clip_drv (col0=0, row0=0, ncols=100,
nrows=100, value=0x0, index=0, radius=0)
     at trace.c:339
         pat = (CELL **) 0x7fe8a197bc00
         pat_buf = (CELL *) 0x7fe8a1bc0a40
         cor_cell_buf = (CELL *) 0x24b2ab0
         cor_fcell_buf = (FCELL *) 0x7fffe6d0f180
         buf = (DCELL **) 0x2470370
         cor = (DCELL **) 0x249a790
         cor_dcell_buf = (DCELL *) 0x7fe8a1ddf710
         null_buf = (DCELL **) 0x2485580
         i = 0
         j = 101
         fd = 1
         fe = 8
         p = 6423704
         infd = 7
         centernull = 1
         empty = 0
         hist_ok = 1
         colr_ok = 1
         cats_ok = 1
         range_ok = 1
         mapset = 0x7fe8a1bc0a40 "neteler"
         name = 0x24674a0 "patch"
         list_head = (PATCH *) 0x0
         hist = {mapid = "Wed Nov 4 20:31:52 2009", '\0' <repeats 55
times>, title = "patch", '\0' <repeats 74 times>,
   mapset = "neteler", '\0' <repeats 72 times>, creator = "neteler", '\0'
<repeats 72 times>,
   maptype = "raster", '\0' <repeats 73 times>, datsrc_1 = '\0' <repeats 79
times>, datsrc_2 = '\0' <repeats 79 times>,
   keywrd = "generated by r.grow", '\0' <repeats 60 times>, edlinecnt = 1,
edhist = {
     "r.grow input=\"points\" output=\"patch\" radius=10
metric=\"euclidean\"", '\0' <repeats 14 times>,
     '\0' <repeats 79 times> <repeats 49 times>}}
         cats = {ncats = 219, num = 255, title = 0x24ba700 "Random points
on [surface in neteler]", fmt = 0x24ba8b0 "",
   m1 = 0, a1 = 0, m2 = 0, a2 = 0, q = {truncate_only = 0, round_only = 0,
defaultDRuleSet = 1685287777,
     defaultCRuleSet = 0, infiniteLeftSet = 0, infiniteRightSet = 0,
cRangeSet = -65536, maxNofRules = 250,
     nofRules = 219, defaultDMin = 2.7027177092469472e-82, defaultDMax = 6.
9483966104968404e-310, defaultCMin = 0,
     defaultCMax = 0, infiniteDLeft = 0, infiniteDRight =
3.914178569747262e+180, infiniteCLeft = 23, infiniteCRight = 0,
     dMin = 1, dMax = 255, cMin = 0, cMax = 218, table = 0x24b4350,
fp_lookup = {vals = 0x0, rules = 0x7fffe6d0df10,
       nalloc = -422519216, active = 0, inf_dmin = 2.1290593012604334e-317,
inf_dmax = 6.9533349326523867e-310,
       inf_min = 4206800, inf_max = 0}}, labels = 0x24b07d0, marks =
0x24b0fe0, nalloc = 256, last_marked_rule = -1}
         newcats = {ncats = 0, num = 0, title = 0x24b00c0 "Random points on
[surface in neteler]", fmt = 0x0, m1 = 0,
   a1 = 0, m2 = 0, a2 = 0, q = {truncate_only = 0, round_only = 0,
defaultDRuleSet = 38184240, defaultCRuleSet = 0,
     infiniteLeftSet = 0, infiniteRightSet = 0, cRangeSet = -422519248,
maxNofRules = 0, nofRules = 0, defaultDMin = 0,
     defaultDMax = 6.9533349325994229e-310, defaultCMin = -422518352,
defaultCMax = 32767,
     infiniteDLeft = -nan(0xfffffffffffff), infiniteDRight = 6.
9533349326547583e-310, infiniteCLeft = -422518352,
     infiniteCRight = 32767, dMin = 6.953334932613652e-310, dMax = 6.
9483969725536792e-310, cMin = 0, cMax = 0,
     table = 0x0, fp_lookup = {vals = 0x7fffe6d0e180, rules =
0x7fe8a0fb9619, nalloc = -72515583, active = 0,
       inf_dmin = 6.9533349326547583e-310, inf_dmax = 6.9533349326547583e-
310, inf_min = -422518352, inf_max = 32767}},
   labels = 0x0, marks = 0x7fffe6d0e1db, nalloc = 0, last_marked_rule = -1}
         stats = {node = 0x24b00f0, tlen = 10, N = 3, curp = 0,
null_data_count = 8532, curoffset = -422518784}
         colr = {version = 0, shift = 0, invert = 0, is_float = 0, null_set
= 0, null_red = 232 '\ufffd',
   null_grn = 127 '\177', null_blu = 0 '\0', undef_set = 0, undef_red = 0
'\0', undef_grn = 0 '\0', undef_blu = 0 '\0',
   fixed = {rules = 0x24bb7b0, n_rules = 1, lookup = {red = 0x1a19aa2a0
<Address 0x1a19aa2a0 out of bounds>,
       grn = 0x7fe8a19aa2a0 "MASK", blu = 0x246a530 "-3.461977 -3.461977 to
-3.461977", set = 0x7fffe6d0ee20 "",
       nalloc = -1583890387, active = 0}, fp_lookup = {vals = 0x0, rules =
0x7fe8a1bc0a40, nalloc = 0, active = 0},
     min = 1, max = 255}, modular = {rules = 0x0, n_rules = 0, lookup =
{red = 0x7fffe6d0df10 "",
       grn = 0x7fffe6d0de50 "\200\ufffd\ufffd\ufffd\ufffd\177", blu = 0x0,
set = 0x7fe8a19b101c "", nalloc = 1, active = 0}, fp_lookup = {
       vals = 0x7fffe6d0d950, rules = 0xd, nalloc = 0, active = 0}, min =
0, max = -1}, cmin = 1, cmax = 255}
         range = {min = 76, max = 171, first_time = 0}
         fprange = {min = 2.1290593012604334e-317, max = 6.
9483969595155832e-310, first_time = 0}
         quant = {truncate_only = -1583694900, round_only = 32744,
defaultDRuleSet = -1583694895,
   defaultCRuleSet = 32744, infiniteLeftSet = -422519552, infiniteRightSet
= 32767, cRangeSet = 38188368,
   maxNofRules = 0, nofRules = 38171648, defaultDMin = 1.8865940164224833e-
316, defaultDMax = 6.9533349327978397e-310,
   defaultCMin = -1583818750, defaultCMax = 32744, infiniteDLeft = 6.
9533349325962609e-310,
   infiniteDRight = 2.1219957904712067e-314, infiniteCLeft = 38188368,
infiniteCRight = 0,
   dMin = 1.8859378972448062e-316, dMax = 6.9483969725914258e-310, cMin =
-1583694895, cMax = 32744,
   table = 0x5002467400, fp_lookup = {vals = 0x246a880, rules =
0x7fffe6d0db60, nalloc = 4206800, active = 0,
     inf_dmin = 6.9533349328713566e-310, inf_dmax = 0, inf_min = 0, inf_max
= 0}}
         data_type = 0
#5 0x000000000040d221 in whole_reg_driver () at driver.c:2816
         i = -422514224
         j = 32767
         regcnt = 0
         found = 38171664
         fr = 0
         nrows = 100
         ncols = 100
         ptrfirst = (REGLIST *) 0x7fe8a1bc0a40
         ptrthis = (REGLIST *) 0x24674a0
         ptrnew = (REGLIST *) 0xfefefefefefefeff
         row_buf = (CELL *) 0x2470370
#6 0x0000000000403342 in patch_fore () at driver.c:115
No locals.
#7 0x000000000041014e in main (argc=6, argv=0x7fffe6d0f2d8) at main.c:197
         module = (struct GModule *) 0x7fe8a1bc0f40
}}}

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/801#comment:1&gt;
GRASS GIS <http://grass.osgeo.org>

#801: r.le.patch crashes with -c flag
----------------------------------+-----------------------------------------
Reporter: wilsonadam | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 6.4.0
Component: Raster | Version: 6.4.0 RCs
Keywords: r.le.patch, segfault | Platform: Linux
      Cpu: x86-64 |
----------------------------------+-----------------------------------------
Changes (by hamish):

  * keywords: segmentation fault => r.le.patch, segfault
  * component: Default => Raster

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/801#comment:2&gt;
GRASS GIS <http://grass.osgeo.org>

#801: r.le.patch crashes with -c flag
----------------------------------+-----------------------------------------
Reporter: wilsonadam | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 6.4.4
Component: Raster | Version: 6.4.0 RCs
Keywords: r.le.patch, segfault | Platform: Linux
      Cpu: x86-64 |
----------------------------------+-----------------------------------------
Changes (by neteler):

  * milestone: 6.4.0 => 6.4.4

Comment:

The crash persists in current 6.4.svn, it fails on G_free() in trace.c,
line 765

source:grass/branches/releasebranch_6_4/raster/r.le/r.le.patch/trace.c#L765

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/801#comment:3&gt;
GRASS GIS <http://grass.osgeo.org>

#801: r.le.patch crashes with -c flag
----------------------------------+-----------------------------------------
Reporter: wilsonadam | Owner: grass-dev@…
     Type: defect | Status: new
Priority: normal | Milestone: 6.4.4
Component: Raster | Version: 6.4.0 RCs
Keywords: r.le.patch, segfault | Platform: Linux
      Cpu: x86-64 |
----------------------------------+-----------------------------------------

Comment(by mmetz):

Replying to [comment:3 neteler]:
> The crash persists in current 6.4.svn, it fails on G_free() in trace.c,
line 765
>
>
source:grass/branches/releasebranch_6_4/raster/r.le/r.le.patch/trace.c#L765

One problem is that memory is allocated for ncols but then ncols + 3
entries are accessed, causing memory corruption. Furthermore, there are
various for (i = 1; i < nrows + 1; i++) which also exceed allocated
memory. The r.le.* modules are deprecated and deactivated in trunk; it is
recommended to use the r.li.* modules instead.

Markus M

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/801#comment:4&gt;
GRASS GIS <http://grass.osgeo.org>