Fix some warnings about strcpy() etc. on OpenBSD

This commit is contained in:
sin 2013-08-15 12:34:38 +01:00
parent 7d4d519a51
commit 582511d57b
3 changed files with 8 additions and 5 deletions

5
ls.c
View File

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

View File

@ -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;

View File

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