[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#496962: yabasic: The "open window" statement fails.



Package: yabasic
Version: 2.763-4
Severity: normal
Tags: patch

In yabasic, executing the statement "open window 200,200" results
in the following error output:

open window 200,200
*** glibc detected *** yabasic: munmap_chunk(): invalid pointer: 0x080683a1 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6[0xb7ca74f4]
yabasic[0x80575f1]
yabasic[0x8059552]
yabasic[0x804db6b]
yabasic[0x804e336]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7c4f455]
yabasic[0x804a711]
======= Memory map: ========
08048000-08078000 r-xp 00000000 08:06 296531     /usr/bin/yabasic
08078000-08079000 rw-p 0002f000 08:06 296531     /usr/bin/yabasic
08079000-080b2000 rw-p 08079000 00:00 0          [heap]
b7bdd000-b7be7000 r-xp 00000000 08:01 39952      /lib/i686/cmov/libnss_files-2.7
.so
b7be7000-b7be9000 rw-p 00009000 08:01 39952      /lib/i686/cmov/libnss_files-2.7
.so
b7c11000-b7c12000 rw-p b7c11000 00:00 0 
b7c12000-b7c16000 r-xp 00000000 08:06 1235847    /usr/lib/libXdmcp.so.6.0.0
b7c16000-b7c17000 rw-p 00003000 08:06 1235847    /usr/lib/libXdmcp.so.6.0.0
b7c17000-b7c19000 r-xp 00000000 08:06 1235845    /usr/lib/libXau.so.6.0.0
b7c19000-b7c1a000 rw-p 00001000 08:06 1235845    /usr/lib/libXau.so.6.0.0
b7c1a000-b7c31000 r-xp 00000000 08:06 1235849    /usr/lib/libxcb.so.1.0.0
b7c31000-b7c32000 rw-p 00016000 08:06 1235849    /usr/lib/libxcb.so.1.0.0
b7c32000-b7c33000 rw-p b7c32000 00:00 0 
b7c33000-b7c34000 r-xp 00000000 08:06 1236455    /usr/lib/libxcb-xlib.so.0.0.0
b7c34000-b7c35000 rw-p 00000000 08:06 1236455    /usr/lib/libxcb-xlib.so.0.0.0
b7c35000-b7c37000 r-xp 00000000 08:01 39946      /lib/i686/cmov/libdl-2.7.so
b7c37000-b7c39000 rw-p 00001000 08:01 39946      /lib/i686/cmov/libdl-2.7.so
b7c39000-b7d8e000 r-xp 00000000 08:01 39943      /lib/i686/cmov/libc-2.7.so
b7d8e000-b7d8f000 r--p 00155000 08:01 39943      /lib/i686/cmov/libc-2.7.so
b7d8f000-b7d91000 rw-p 00156000 08:01 39943      /lib/i686/cmov/libc-2.7.so
b7d91000-b7d94000 rw-p b7d91000 00:00 0 
b7d94000-b7e7f000 r-xp 00000000 08:06 1236457    /usr/lib/libX11.so.6.2.0
b7e7f000-b7e82000 rw-p 000eb000 08:06 1236457    /usr/lib/libX11.so.6.2.0
b7e82000-b7e83000 rw-p b7e82000 00:00 0 
b7e83000-b7eb2000 r-xp 00000000 08:01 26585      /lib/libncurses.so.5.6
b7eb2000-b7eb5000 rw-p 0002f000 08:01 26585      /lib/libncurses.so.5.6
b7eb5000-b7ed9000 r-xp 00000000 08:01 39947      /lib/i686/cmov/libm-2.7.so
b7ed9000-b7edb000 rw-p 00023000 08:01 39947      /lib/i686/cmov/libm-2.7.so
b7edb000-b7edc000 rw-p b7edb000 00:00 0 
b7edc000-b7ef0000 r-xp 00000000 08:06 1236461    /usr/lib/libICE.so.6.3.0
b7ef0000-b7ef1000 rw-p 00014000 08:06 1236461    /usr/lib/libICE.so.6.3.0
b7ef1000-b7ef3000 rw-p b7ef1000 00:00 0 
b7ef3000-b7efa000 r-xp 00000000 08:06 1236463    /usr/lib/libSM.so.6.0.0
b7efa000-b7efb000 rw-p 00006000 08:06 1236463    /usr/lib/libSM.so.6.0.0
b7f14000-b7f20000 r-xp 00000000 08:01 26627      /lib/libgcc_s.so.1
b7f20000-b7f21000 rw-p 0000b000 08:01 26627      /lib/libgcc_s.so.1
b7f21000-b7f25000 rw-p b7f21000 00:00 0 
b7f25000-b7f3f000 r-xp 00000000 08:01 29362      /lib/ld-2.7.so
b7f3f000-b7f41000 rw-p 0001a000 08:01 29362      /lib/ld-2.7.so
bf9de000-bf9f3000 rw-p bffeb000 00:00 0          [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]
---Fatal in standard input, line 1: received signal ABORT, cannot proceed.
---Immediate exit to system, due to a fatal error.

I found a discussion at
http://forum.basicprogramming.org/index.php?topic=21.0 and a patch at
http://www.basicprogramming.org/files/graphic.patch, which I'm including
with this report.  I've applied the patch on my system and it does fix
the problem.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (750, 'testing'), (80, 'cool'), (80, 'cold'), (40, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages yabasic depends on:
ii  libc6                     2.7-13         GNU C Library: Shared libraries
ii  libice6                   2:1.0.4-1      X11 Inter-Client Exchange library
ii  libncurses5               5.6+20080804-1 shared libraries for terminal hand
ii  libsm6                    2:1.0.3-2      X11 Session Management library
ii  libx11-6                  2:1.1.4-2      X11 client-side library

yabasic recommends no packages.

yabasic suggests no packages.

-- debconf-show failed
diff -r -u yabasic-2.763.orig/graphic.c yabasic-2.763/graphic.c
--- yabasic-2.763.orig/graphic.c	2008-08-28 15:35:44.000000000 -0400
+++ yabasic-2.763/graphic.c	2008-08-28 15:36:50.000000000 -0400
@@ -212,12 +212,12 @@
     return;
 
 #ifdef UNIX
-
   /* create the window */
   attrib.backing_store = Always;
   attrib.save_under = TRUE;
   attrib.background_pixel = backpixel;
   attrib.colormap = colormap;
+
   window =
       XCreateWindow (display, root, winx, winy, winwidth, winheight, 0,
 		     CopyFromParent, CopyFromParent, visualinfo.visual,
@@ -731,6 +731,7 @@
       return FALSE;
     }
 
+
   /* get screen */
   screen = DefaultScreen (display);
   root = RootWindow (display, screen);
@@ -780,8 +781,10 @@
 		       visualinfo.visual, AllocNone);
 
   /* now, that we have the colormap, we try to get the colors requested for fore- and background */
+
   if (!foreground)
     foreground = XGetDefault (display, "yabasic", "foreground");
+
   if (!foreground)
     foreground = "black";
   if (!XLookupColor
@@ -815,6 +818,7 @@
   /* get size hints */
   if (geometry == NULL)
     geometry = XGetDefault (display, "yabasic", "geometry");
+
   XParseGeometry (geometry, &winx, &winy, &w, &h);
   sizehints.x = winx;
   sizehints.y = winy;
@@ -830,12 +834,15 @@
   rgc = XCreateGC (display, root, GCForeground | GCBackground, &xgcvalues);
 
   /* get font */
-  if (!font)
-    font = XGetDefault (display, "yabasic", "font");
-  if (!font)
-    font = "6x10";
-  if (!change_font (font))
-    return FALSE;
+
+/*   if (!font)
+     font = XGetDefault (display, "yabasic", "font");*/
+   if (!font) {
+     font = malloc(sizeof(char)*6);
+     font = strcpy(font,"fixed");
+   }
+   if (!change_font (font))
+     return FALSE;
 
 #elif WINDOWS
   /* choose font */
@@ -895,19 +902,20 @@
 
 #ifdef UNIX
   if (font)
-    {
-      if (!myfont || strcmp (font, name))
+  {
+    if (!myfont || strcmp (font, name))
 	{
-	  if (myfont)
-	    XUnloadFont (display, myfont->fid);
-	  my_free (font);
-	}
-      else
-	{
-	  return TRUE;
+      if (myfont) {
+        XUnloadFont (display, myfont->fid);
+	    my_free (font);
+      }
 	}
+    else
+    {
+      return TRUE;
     }
-  font = my_strdup (name);
+  }
+//  font = my_strdup (name);
   myfont = XLoadQueryFont (display, font);
   if (!myfont)
     {

Reply to: