From f6c55871edd66dac4339393b0e93a61295684584 Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Mon, 15 Dec 2008 05:05:24 +0000 Subject: [PATCH] opkg: Bug fix for Packages file with a Filename: tag with prepended path. Patch from Alexandros Kostopoulos git-svn-id: http://opkg.googlecode.com/svn/trunk@66 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- libopkg/opkg_download.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c index 7dc06ef..4e95fae 100644 --- a/libopkg/opkg_download.c +++ b/libopkg/opkg_download.c @@ -178,6 +178,7 @@ int opkg_download_pkg(opkg_conf_t *conf, pkg_t *pkg, const char *dir) int err; char *url; char *pkgid; + char *stripped_filename; if (pkg->src == NULL) { opkg_message(conf,OPKG_ERROR, "ERROR: Package %s (parent %s) is not available from any configured src.\n", @@ -195,7 +196,12 @@ int opkg_download_pkg(opkg_conf_t *conf, pkg_t *pkg, const char *dir) "../../foo.ipk". While this is correct, and exactly what we want to use to construct url above, here we actually need to use just the filename part, without any directory. */ - sprintf_alloc(&pkg->local_filename, "%s/%s", dir, pkg->filename); + + stripped_filename = strrchr(pkg->filename, '/'); + if ( ! stripped_filename ) + stripped_filename = pkg->filename; + + sprintf_alloc(&pkg->local_filename, "%s/%s", dir, stripped_filename); err = opkg_download(conf, url, pkg->local_filename); free(url); -- 2.30.2