]> Skullheadx's Git Forge - surf.git/commitdiff
Fix message sizes for web extension communication
authorQuentin Rameau <quinq@fifth.space>
Sun, 17 Mar 2024 07:06:01 +0000 (08:06 +0100)
committerQuentin Rameau <quinq@fifth.space>
Sun, 17 Mar 2024 08:13:56 +0000 (09:13 +0100)
surf.c
webext-surf.c

diff --git a/surf.c b/surf.c
index f35cb050a11246fcd332b64b737e6e12e5446aea..18d65d7a0fffc113c6ddd2cd4be12f83841ceadf 100644 (file)
--- 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
index f09714e6c0aedab905b806ea184ae697e880e72d..84191f30616745968086bf02ba0ad0f362e9541d 100644 (file)
@@ -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;