Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK

2022-09-02 Thread NRK
Hi Santtu,

On Fri, Sep 02, 2022 at 02:58:15PM +0300, Santtu Lakkala wrote:
> This should now be
> text[cursor] = '\0';

You're totally correct. I noticed this too some time later after I had
already sent the patch. I was about to send an amended patch now but
looks like it's already fixed thanks to you!

- NRK



Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK

2022-09-02 Thread Hiltjo Posthuma
On Fri, Sep 02, 2022 at 02:58:15PM +0300, Santtu Lakkala wrote:
> On 2.9.2022 14.01, g...@suckless.org wrote:
> > commit 528d39b011afb7ef6fd794ba6b74155d4e69bc68
> dmenu.c b/dmenu.c
> > index 969f6d8..6b285df 100644
> > --- a/dmenu.c
> > +++ b/dmenu.c
> > @@ -517,9 +517,9 @@ insert:
> > case XK_Tab:
> > if (!sel)
> > return;
> > -   strncpy(text, sel->text, sizeof text - 1);
> > +   cursor = strnlen(sel->text, sizeof text - 1);
> > +   memcpy(text, sel->text, cursor);
> > text[sizeof text - 1] = '\0'
> This should now be
> text[cursor] = '\0';
> 
> (Try, for example:
> printf "short\nlongerstring\n" | dmenu
> 
> and type in: lon^Ks
> and end up with shortgerstring)
> 
> > -   cursor = strlen(text);
> > match();
> > break;
> > }
> 
> -- 
> Santtu
> 

Thank you!

-- 
Kind regards,
Hiltjo



Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK

2022-09-02 Thread Santtu Lakkala

On 2.9.2022 14.01, g...@suckless.org wrote:

commit 528d39b011afb7ef6fd794ba6b74155d4e69bc68

dmenu.c b/dmenu.c

index 969f6d8..6b285df 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -517,9 +517,9 @@ insert:
case XK_Tab:
if (!sel)
return;
-   strncpy(text, sel->text, sizeof text - 1);
+   cursor = strnlen(sel->text, sizeof text - 1);
+   memcpy(text, sel->text, cursor);
text[sizeof text - 1] = '\0'

This should now be
text[cursor] = '\0';

(Try, for example:
printf "short\nlongerstring\n" | dmenu

and type in: lon^Ks
and end up with shortgerstring)


-   cursor = strlen(text);
match();
break;
}


--
Santtu