[GRASS5] [bug #3469] (grass) about i.class

Markus Neteler neteler at itc.it
Mon Aug 8 09:28:57 EDT 2005


On Sun, Aug 07, 2005 at 09:19:01PM -0700, Brad Douglas wrote:
> On Sun, 2005-07-31 at 09:46 +0200, Request Tracker wrote:
> > this bug's URL: http://intevation.de/rt/webrt?serial_num=3469
> > -------------------------------------------------------------------------
> > 
> > Subject: about i.class
> > 
> > Platform: GNU/Linux/i386
> > grass obtained from: CVS
> > grass binary for platform: Compiled from Sources
> > 
> >  I am working with GRASS61, I try with i.class for supervised classification. After drawing the region on image I click to the Analyze region Menu, I get this error message WARNING:PREPARE_SIGNATURE: DATA ERROR (CLICK MOUSE TO CONTINUE). It seem that all the regions that I chose before now disappear. I try again with GRASS57, the result is also the same. Can you solve this problem for me? Thank you very much,
> > Best regards,
> > Tran Van Anh
> 
> I traced this back to INAME_LEN being changed from 30 to 256 in
> include/imagery.h.
> 
> This makes lib/vask/V_ques.c: V_ques() bomb out starting at line:
> 
> if ((length <= 0) || ((length + col) > 80)) ...
> 
> where the variable 'length' is passed in as INAME_LEN.
> 
> The program keeps running until it dies with a floating point exception.

Brad,

the bug discovered by you is probably a new bug.

Miss Van Anh reports that GRASS57 also failed.

For testing, the LANDSAT-7 scene prepared for the Spearfish location
 http://mpa.itc.it/grasstutor/data_menu2nd.phtml
 -> p033r029_20000712_NAD27_small.tar.gz
may be used.

for i in p033*.tif ; do 
    NAME=`echo $i | cut -d'_' -f4`
    r.in.gdal $i out=$NAME
done

i.group gr=lsat subgroup=lsat in=nn10,nn20,nn30,nn40,nn50,nn70
i.class

i.class
V_ask error: Length out of bounds in call to V_ques
V_ask error: Length out of bounds in call to V_ques

Now I see the new bug, coming from
lib/imagery/
vask_group.c:   V_ques (group, 's', line++, 10, INAME_LEN);

Attached patch cures *this* problem. Apply to CVS?

Then I made a quick test using i.class.
For me the reported error "prepare_signature: data error." doesn't happen.

Markus

-------------- next part --------------
Index: lib/imagery/vask_group.c
===================================================================
RCS file: /grassrepository/grass6/lib/imagery/vask_group.c,v
retrieving revision 2.0
diff -u -r2.0 vask_group.c
--- lib/imagery/vask_group.c	9 Nov 2004 12:28:44 -0000	2.0
+++ lib/imagery/vask_group.c	8 Aug 2005 13:27:44 -0000
@@ -5,6 +5,8 @@
 #define OLD 1
 #define NEW 2
 
+#define MYINAME_LEN 30 /* this contradicts long file name support */
+
 static int ask ( char **, char *,char *, int , int, char *);
 
 int I_vask_group_new (
@@ -86,17 +88,17 @@
     if (both)
     {
 	V_line (line, "GROUP:                                     (list will show available groups)");
-	V_ques (group, 's', line++, 10, INAME_LEN);
+	V_ques (group, 's', line++, 10, MYINAME_LEN);
     }
     else
     {
 	V_line (line, "GROUP:");
-	V_const (group, 's', line++, 10, INAME_LEN);
+	V_const (group, 's', line++, 10, MYINAME_LEN);
     }
     if (subgroup != NULL)
     {
 	V_line (line, "SUBGROUP:                                  (list will show available subgroups)");
-	V_ques (subgroup, 's', line++, 10, INAME_LEN);
+	V_ques (subgroup, 's', line++, 10, MYINAME_LEN);
     }
 
 


More information about the grass-dev mailing list