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:
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);
}