Fix message sizes for web extension communication - surf - surf browser, a WebKit based browser
 (HTM) git clone git://git.suckless.org/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b48be75179e5e2839b60f713111a1789b868cede
 (DIR) parent 2ea91766bbd2f0689df3fbc9793c10c4376c0389
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Sun, 17 Mar 2024 08:06:01 +0100
       
       Fix message sizes for web extension communication
       
       Diffstat:
         M surf.c                              |      11 ++++++-----
         M webext-surf.c                       |       6 +++---
       
       2 files changed, 9 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       @@ -1853,21 +1853,22 @@ zoom(Client *c, const Arg *a)
        static void
        msgext(Client *c, char type, const Arg *a)
        {
       -        static char msg[MSGBUFSZ];
       +        static unsigned char msg[MSGBUFSZ];
                int ret;
        
                if (spair[0] < 0)
                        return;
        
       -        if ((ret = snprintf(msg, sizeof(msg), "%c%c%c", c->pageid, type, a->i))
       -            >= sizeof(msg)) {
       +        ret = snprintf(msg, sizeof(msg), "%c%c%c",
       +                       (unsigned char)c->pageid, type, (signed char)a->i);
       +        if (ret >= sizeof(msg)) {
                        fprintf(stderr, "surf: message too long: %d\n", ret);
                        return;
                }
        
                if (send(spair[0], msg, ret, 0) != ret)
       -                fprintf(stderr, "surf: error sending: %u%c%d (%d)\n",
       -                        c->pageid, type, a->i, ret);
       +                fprintf(stderr, "surf: error sending: %hhu/%c/%d (%d)\n",
       +                        (unsigned char)c->pageid, type, a->i, ret);
        }
        
        void
 (DIR) diff --git a/webext-surf.c b/webext-surf.c
       @@ -39,7 +39,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused)
                }
        
                if (msgsz < 2) {
       -                fprintf(stderr, "webext: readsock: message too short: %d\n",
       +                fprintf(stderr, "webext: readsock: message too short: %lu\n",
                                msgsz);
                        return TRUE;
                }
       @@ -54,7 +54,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused)
                        if (msgsz != 3)
                                return TRUE;
                        snprintf(js, sizeof(js),
       -                         "window.scrollBy(window.innerWidth/100*%d,0);",
       +                         "window.scrollBy(window.innerWidth/100*%hhd,0);",
                                 msg[2]);
                        jsc_context_evaluate(jsc, js, -1);
                        break;
       @@ -62,7 +62,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused)
                        if (msgsz != 3)
                                return TRUE;
                        snprintf(js, sizeof(js),
       -                         "window.scrollBy(0,window.innerHeight/100*%d);",
       +                         "window.scrollBy(0,window.innerHeight/100*%hhd);",
                                 msg[2]);
                        jsc_context_evaluate(jsc, js, -1);
                        break;