sbase

suckless unix tools
git clone git://git.2f30.org/sbase.git
Log | Files | Refs | README | LICENSE

commit 582511d57b4970a1411d2b8d81b7af6d64978225
parent 7d4d519a5166acd852de68c3bfc442289d091b25
Author: sin <sin@2f30.org>
Date:   Thu, 15 Aug 2013 12:34:38 +0100

Fix some warnings about strcpy() etc. on OpenBSD

Diffstat:
ls.c | 5+++--
util/afgets.c | 3++-
util/getlines.c | 5+++--
3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ls.c b/ls.c @@ -112,6 +112,7 @@ lsdir(const char *path) struct dirent *d; DIR *dp; Entry ent, *ents = NULL; + size_t sz; cwd = agetcwd(); if(!(dp = opendir(path))) @@ -135,9 +136,9 @@ lsdir(const char *path) } else { if(!(ents = realloc(ents, ++n * sizeof *ents))) eprintf("realloc:"); - if(!(p = malloc(strlen(d->d_name)+1))) + if(!(p = malloc((sz = strlen(d->d_name)+1)))) eprintf("malloc:"); - strcpy(p, d->d_name); + memcpy(p, d->d_name, sz); mkent(&ents[n-1], p, tflag || lflag); } } diff --git a/util/afgets.c b/util/afgets.c @@ -17,7 +17,8 @@ afgets(char **p, size_t *size, FILE *fp) if(len+1 > *size && !(*p = realloc(*p, len+1))) eprintf("realloc:"); - strcpy(&(*p)[len-n], buf); + memcpy(&(*p)[len-n], buf, n); + (*p)[len] = '\0'; if(buf[n-1] == '\n' || feof(fp)) break; diff --git a/util/getlines.c b/util/getlines.c @@ -11,6 +11,7 @@ getlines(FILE *fp, struct linebuf *b) { char *line = NULL, **nline; size_t size = 0; + size_t linelen; while(afgets(&line, &size, fp)) { if(++b->nlines > b->capacity) { @@ -20,9 +21,9 @@ getlines(FILE *fp, struct linebuf *b) eprintf("realloc:"); b->lines = nline; } - if(!(b->lines[b->nlines-1] = malloc(strlen(line)+1))) + if(!(b->lines[b->nlines-1] = malloc((linelen = strlen(line)+1)))) eprintf("malloc:"); - strcpy(b->lines[b->nlines-1], line); + memcpy(b->lines[b->nlines-1], line, linelen); } free(line); }