sin dixit:

>                       if(!(p = malloc(strlen(d->d_name)+1)))
>                               eprintf("malloc:");
>-                      strcpy(p, d->d_name);
>+                      snprintf(p, strlen(d->d_name)+1, "%s", d->d_name);

I object. The better fix here is:

+                       size_t sz;

-                       if(!(p = malloc(strlen(d->d_name)+1)))
+                       if(!(p = malloc((sz = strlen(d->d_name)+1))))

+                       memcpy(p, d->d_name, sz);

>               if(len+1 > *size && !(*p = realloc(*p, len+1)))
>                       eprintf("realloc:");
> 
>-              strcpy(&(*p)[len-n], buf);
>+              snprintf(&(*p)[len-n], n+1, "%s", buf);

Again, I object… you do not calculate the length correctly.
Besides, this looks like a strlcat to me… if not, memcpy
might again be more wise; n+1 doesn’t match with len+1 from above.

>               if(!(b->lines[b->nlines-1] = malloc(strlen(line)+1)))
>                       eprintf("malloc:");
>-              strcpy(b->lines[b->nlines-1], line);
>+              snprintf(b->lines[b->nlines-1], strlen(line)+1, "%s", line);

snprintf invokes stdio… if the size is known, like in such
cases, use memcpy. And cache strlen(line) + 1 in a size_t.

Is not using spaces around operators normal for sbase, btw?
This is horrid. Please read https://www.mirbsd.org/man9/style
for something nicer-looking. (I used to do it wrong, too.)

bye,
//mirabilos
-- 
> Hi, does anyone sell openbsd stickers by themselves and not packaged
> with other products?
No, the only way I've seen them sold is for $40 with a free OpenBSD CD.
        -- Haroon Khalid and Steve Shockley in gmane.os.openbsd.misc

Reply via email to