Your message dated Sun, 22 Feb 2026 19:48:38 +0000
with message-id <[email protected]>
and subject line Bug#1128731: fixed in textdraw 0.2+ds-2
has caused the Debian Bug report #1128731,
regarding textdraw: Smashed stack when starting the tool
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1128731: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1128731
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: textdraw
Version: 0.2+ds-1
Severity: grave
Tags: patch
Justification: renders package unusable

Dear Maintainer,

when invoking 'td' I got:

*** stack smashing detected ***: terminated

I identified two problems which I fixed and described in
03-avoid-smashed-stack.diff. The other patches are minor changes to fix
some gcc warnings.

Thanks and happy hacking,

   Wolfram


-- System Information:
Debian Release: forky/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.18.5+deb14-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages textdraw depends on:
ii  libc6        2.42-11+b1
ii  libncurses6  6.6+20251231-1
ii  libtinfo6    6.6+20251231-1

textdraw recommends no packages.

textdraw suggests no packages.

-- no debconf information
Fix two problems causing smashed stacks. First, out-of-bounds for terminals
lager than 200 chars. Second, improper NULL pointer check.
---
 td.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Index: textdraw-0.2+ds/td.c
===================================================================
--- textdraw-0.2+ds.orig/td.c
+++ textdraw-0.2+ds/td.c
@@ -20,7 +20,7 @@ Homepage of Textdraw: http://web.uta4you
 #define ENTER 10       // enter key
 #define DEL 330                // del key
 #define MAXOBJECTS 100 // maximum of possible objects
-#define MAXTXTLEN 200  // max string length
+#define MAXTXTLEN 512  // max string length
 
                                                /* VARIABLES*/
 int x=0, y=0;
@@ -689,7 +690,7 @@ int main(int argc, char *argv[])                    /* MA
        maxrow-=2; maxcol-=1; menrow=maxrow+1;
        init();
 
-       if(argv[1]=='\0')       // new file
+       if(!argv[1])            // new file
        {
        filename="new";
        comment("file 'new' opened - to open existing file: <td filename>");
Generated with a sed-script. Fixes multiple:
warning: zero-length gnu_printf format string [-Wformat-zero-length]
---
 td.c |   18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

Index: textdraw-0.2+ds/td.c
===================================================================
--- textdraw-0.2+ds.orig/td.c
+++ textdraw-0.2+ds/td.c
@@ -80,7 +80,7 @@ void comment_error(char *where)
 void curpos()  //position cursor with printing coordinates
 {      mvprintw(menrow,maxcol-10,"          ");
        mvprintw(menrow,maxcol-10,"x=%d y=%d",x,y);
-       mvprintw(y,x,"");
+       move(y,x);
 }
 
 void cursor()  // move cursor to a new position
@@ -337,7 +337,7 @@ void draw() // draws chart-array on scre
        drawell();
        drawtxt();
 
-       mvprintw(0,0,"");
+       move(0,0);
        for(i=0;i<=maxrow;i++) printw("%s",chart[i]);
        curpos();
        refresh();
@@ -370,7 +370,7 @@ void lineinput()    // inputs line-object-p
 {      lin[lastlin].x1=x; lin[lastlin].y1=y; 
        curpos();
        comment("mark end of line");
-       mvprintw(y,x,"");
+       move(y,x);
 
        cursor();
 
@@ -386,7 +386,7 @@ void recinput()             // inputs rectangle-obj
 {      rec[lastrec].x1=x; rec[lastrec].y1=y;
 
        comment("mark 2nd point of rectangle");
-       mvprintw(y,x,"");
+       move(y,x);
 
        cursor();
 
@@ -401,7 +401,7 @@ void ellinput()             // inputs ellipse-objec
 {      ell[lastell].x1=x; ell[lastell].y1=y;
 
        comment("mark 2nd point of ellipse");
-       mvprintw(y,x,"");
+       move(y,x);
 
        cursor();
 
@@ -436,7 +436,7 @@ void moving()               // moves marked objekt to
 
        markobj();
        if(mark.a=='t')
-       {       mvprintw(txt[mark.nr].x,txt[mark.nr].y,"");
+       {       move(txt[mark.nr].x,txt[mark.nr].y);
                comment("move text to");
                curpos(); cursor(); clearcomment();
                dx=x-txt[mark.nr].x; dy=y-txt[mark.nr].y;
@@ -444,7 +444,7 @@ void moving()               // moves marked objekt to
                txt[mark.nr].y=txt[mark.nr].y+dy;
        }
        if(mark.a=='e')
-       {       mvprintw(ell[mark.nr].x1,ell[mark.nr].y1,"");
+       {       move(ell[mark.nr].x1,ell[mark.nr].y1);
                comment("move ellipse to");
                curpos(); cursor(); clearcomment();
                dx=x-ell[mark.nr].x1; dy=y-ell[mark.nr].y1;
@@ -454,7 +454,7 @@ void moving()               // moves marked objekt to
                ell[mark.nr].y2=ell[mark.nr].y2+dy;
        }
        if(mark.a=='r')
-       {       mvprintw(rec[mark.nr].x1,rec[mark.nr].y1,"");
+       {       move(rec[mark.nr].x1,rec[mark.nr].y1);
                comment("move rectangle to");
                curpos(); cursor(); clearcomment();
                dx=x-rec[mark.nr].x1; dy=y-rec[mark.nr].y1;
@@ -464,7 +464,7 @@ void moving()               // moves marked objekt to
                rec[mark.nr].y2=rec[mark.nr].y2+dy;
        }
        if(mark.a=='l')
-       {       mvprintw(lin[mark.nr].x1,lin[mark.nr].y1,"");
+       {       move(lin[mark.nr].x1,lin[mark.nr].y1);
                comment("move line to");
                curpos(); cursor(); clearcomment();
                dx=x-lin[mark.nr].x1; dy=y-lin[mark.nr].y1;
Fixes:
warning: variable ‘c’ set but not used [-Wunused-but-set-variable]
---
 td.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Index: textdraw-0.2+ds/td.c
===================================================================
--- textdraw-0.2+ds.orig/td.c
+++ textdraw-0.2+ds/td.c
@@ -127,7 +127,7 @@ void input()        // reads (inputs) value for
 }
 
 void help()    // print help screen
-{      int c; clear();
+{      clear();
        printw("\nTEXTDRAW 0.2 (c) by Dieter Schoppitsch\n\n");
        printw("c       copy            copy marked object to buffer\n");
        printw("d       delete          delete marked object\n");
@@ -146,7 +146,8 @@ void help() // print help screen
        printw("mark object at 'hot spot'\n");
        printw("to load existing file: <td filename>\n");
        printw("try also: home, end, pgdn, pgup\n");
-       refresh(); c=getch();
+       refresh();
+       getch();
 }
 
                                                /* INIT */
Fixes:
warning: format ‘%d’ expects argument of type ‘int’, but argument 6 has type 
‘size_t’ {aka ‘long unsigned int’}
---
 td.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: textdraw-0.2+ds/td.c
===================================================================
--- textdraw-0.2+ds.orig/td.c
+++ textdraw-0.2+ds/td.c
@@ -650,7 +650,7 @@ void save()         // save to file
        }
        fprintf(fil,"%d\n",lasttxt);
        for(i=0;i<lasttxt;i++)
-       {       fprintf(fil,"%d %d %c %d %s\n",
+       {       fprintf(fil,"%d %d %c %zu %s\n",
                txt[i].x,txt[i].y,txt[i].a,strlen(txt[i].t),txt[i].t);
        }
 

--- End Message ---
--- Begin Message ---
Source: textdraw
Source-Version: 0.2+ds-2
Done: Rene Engelhard <[email protected]>

We believe that the bug you reported is fixed in the latest version of
textdraw, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Rene Engelhard <[email protected]> (supplier of updated textdraw package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 22 Feb 2026 20:17:34 +0100
Source: textdraw
Architecture: source
Version: 0.2+ds-2
Distribution: unstable
Urgency: medium
Maintainer: Rene Engelhard <[email protected]>
Changed-By: Rene Engelhard <[email protected]>
Closes: 1128731
Changes:
 textdraw (0.2+ds-2) unstable; urgency=medium
 .
   * add various patches from Wolfram Sang:
     - Fix two problems causing smashed stacks
       Closes: #1128731
     - Fix several zero-length gnu_printf format string [-Wformat-zero-length]
     - Fix warning: variable ‘c’ set but not used [-Wunused-but-set-variable]
     - Fix warning: format ‘%d’ expects argument of type ‘int’, but argument 6
       has type ‘size_t’
Checksums-Sha1:
 cd395e76ea01be7b5590b3afd5a7cc5ee0ad4ab4 1821 textdraw_0.2+ds-2.dsc
 4ea64ee70b908f3bfdb12c89b0be838feaf55876 5988 textdraw_0.2+ds-2.debian.tar.xz
 a73499eb20b94f509d1fc3a013dded3b6d39b59e 6153 
textdraw_0.2+ds-2_source.buildinfo
Checksums-Sha256:
 2fd67d211194c911852be862321c3055b8cf13acd32744ab0357b759997c5ddc 1821 
textdraw_0.2+ds-2.dsc
 f4b73bf8a2987aa56b82581e9fe23e982aea5a23a66630b5ca7b564b69d29af6 5988 
textdraw_0.2+ds-2.debian.tar.xz
 c921787d22025f188f9768bffcfe55b87a897877fa2fcaa65e999e2ca346f23b 6153 
textdraw_0.2+ds-2_source.buildinfo
Files:
 374b036e858f22a34b1ea43f631e1472 1821 graphics optional textdraw_0.2+ds-2.dsc
 e8faa14147ab9517ee09f68d487b6598 5988 graphics optional 
textdraw_0.2+ds-2.debian.tar.xz
 21f2d442271ce82a3cc6909aba196b40 6153 graphics optional 
textdraw_0.2+ds-2_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJEBAEBCgAuFiEE4S3qRnUGcM+pYIAdCqBFcdA+PnAFAmmbVrUQHHJlbmVAZGVi
aWFuLm9yZwAKCRAKoEVx0D4+cPsCD/0e0lL1UIEl7jVCnmsfnFEL1fjuaf0b92Lt
1PBUUOLk77+XioqZpoxEJccdMvVEjV7Nz0R6zOUDrWTVE+CDFG5P7d4zjZLBv11a
faSR5Q9cjR8+rofHZBz1+0Pu5rj5NcbwISr1qNRlSC9xb0VK6DypKYbtUJt1djST
76AEpVtd+SAIelxYszzWrTOkgh2n1qG11rv5KQL4ExqbmU7t4av2+4xv1rF1whSk
ctT2SOjnAawK9OYkjNBwPGadmAOlwrCpzcVF9Fgz2+SdenEEPlWetp/Lu810F4Xw
PjHZHtjqc1srZ1solmwiRcj4VqLt1r0qWevCzU/oAWrxWrlrT2sGrUKXP7Ler5Mx
9QHchAmqGtJPTWI7xtyDmaXz8HomxfM6M5eDyIOkj5DdUC/eqJQtGWHsSKubR6gZ
AlMJvi+ZI4zHFnsJ5i1sa4521+1drumy3VnoAMOxksWJDVWerCLTYtZFIBarwQZ7
3Ic6+po9QMtvPr8Wzok4mtSM/OCJNKZ1V/xOSVXmAqG2ssdbylpVWJGFGiyopVbO
+ljB/HCtwPTqqRhsjWchDg7PMnNR3FB6Bia5gpe0Iu1KJpjqBtsF9iCh3Mszenvm
g3YpZH/xEzslHhYlTNH5CG/eBVnVzIa0f3qOnM9fGTCUL7jy+isDuqr0uYJDYkhx
mtpZy6d+xA==
=ruLn
-----END PGP SIGNATURE-----

Attachment: pgpdOTKsw5z8i.pgp
Description: PGP signature


--- End Message ---

Reply via email to