]> git.ozlabs.org Git - ccan/commitdiff
rbuf: avoid doing memchr(NULL, ..., 0).
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 9 Jan 2023 02:19:22 +0000 (12:49 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 16 Mar 2023 23:22:47 +0000 (09:52 +1030)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/rbuf/rbuf.c

index d8d658d37a3923454324dfe06a3d4bac777b91d0..cc10cf3d7f25e25531d58a9c4b07c8500ff93bf7 100644 (file)
@@ -74,9 +74,11 @@ char *rbuf_read_str(struct rbuf *rbuf, char term)
        ssize_t r = 0;
        size_t prev = 0;
 
-       while (!(p = memchr(membuf_elems(&rbuf->m) + prev,
-                           term,
-                           membuf_num_elems(&rbuf->m) - prev))) {
+       /* memchr(NULL, ..., 0) is illegal.  FML. */
+       while (membuf_num_elems(&rbuf->m) == prev
+              || !(p = memchr(membuf_elems(&rbuf->m) + prev,
+                              term,
+                              membuf_num_elems(&rbuf->m) - prev))) {
                prev += r;
                r = get_more(rbuf);
                if (r < 0)