diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-06-11 09:21:17 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-06-11 09:21:17 +0000 |
commit | 3646350479b960602c53ed45b21be771e7c3f43c (patch) | |
tree | 5ef3ac9b1e4db0374306f927bcb36364d5c7923c /src/fetch.c | |
parent | 64a85ec65d7906faaf75928e5a105b2ea315e154 (diff) | |
download | apk-tools-3646350479b960602c53ed45b21be771e7c3f43c.tar.gz apk-tools-3646350479b960602c53ed45b21be771e7c3f43c.tar.bz2 apk-tools-3646350479b960602c53ed45b21be771e7c3f43c.tar.xz apk-tools-3646350479b960602c53ed45b21be771e7c3f43c.zip |
fetch: readlink does not end buffer with \0
According the manpage readlink(2) does not append a null byte to buf.
So we have to do it ourselves.
Diffstat (limited to 'src/fetch.c')
-rw-r--r-- | src/fetch.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/fetch.c b/src/fetch.c index 5cea5db..ad3a67c 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -91,7 +91,10 @@ static int fetch_package(struct fetch_ctx *fctx, } else { if ((fctx->flags & FETCH_LINK) && apk_url_local_file(infile)) { char real_infile[256]; - readlink(infile, real_infile, sizeof(real_infile)); + int n; + n = readlink(infile, real_infile, sizeof(real_infile)); + if (n > 0 && n < sizeof(real_infile)) + real_infile[n] = '\0'; if (link(real_infile, outfile) == 0) return 0; } |