Commit Graph

1189 Commits

Author SHA1 Message Date
13f73ef41a Merge branch 'master' of github.com:voidlinux/xbps 2015-08-11 18:29:30 +02:00
8acc375487 portableproplib/prop_object: fix tyops in previous. 2015-07-26 09:16:32 +02:00
0d3c07cdee portableproplib/prop_object: fix an insecure temporary file (CID #62739). 2015-07-26 09:11:20 +02:00
36026451ce Fix some insecure temporary files reported by Coverity. 2015-07-26 09:02:04 +02:00
78f9a97980 lib/package_unpack: ignore remove(2) return value (CID #98681). 2015-07-26 08:22:27 +02:00
28f01b3836 xbps_transaction_package_replace: fix a resource leak (CID #98688). 2015-07-26 08:15:07 +02:00
0b7093e108 portableproplib/prop_object: handle possible NULL pointer deref (CID #62722). 2015-07-26 08:10:26 +02:00
a8d2b1d742 pkgdb: handle possible NULL pointer derefs (CID #98684). 2015-07-26 08:08:05 +02:00
7edabe907f xbps_rpool_release: fix a double free (CID #98695). 2015-07-26 08:03:16 +02:00
090464e4b2 xbps_sanitize_path: fix an out-of-bounds access (CID #98686). 2015-07-26 08:01:29 +02:00
47b5eea0f6 set umask for pkgdb creation/access so that pkgdb remains readable for world, even if xbps tools have been called with a very restrictive umask 2015-07-19 11:47:09 +02:00
a7378f70de fetch: fix regression introduced in 791e683e.
us->size and us->{a,m}time must be set after there's real data.
2015-06-30 21:48:21 +02:00
22ffc14026 Override and use a sane umask when performing pkg configuration.
Close #106
2015-06-28 05:14:02 +02:00
791e683e01 fetch: handle GET with offset == length.
While xbps_fetch_file() creates the .part file and for whatever reason
it did not finish properly to rename the file, it could request the server
to restart the download with offset set to file size, resulting in HTTP 416
return code.

Handle this case by checking if the server returns 416 and then checking
if the returned file size matches the requested offset and just rename
the file.

Thanks to @beefcurtains for the test case.
2015-06-28 04:28:55 +02:00
00149d0f37 xbps_transaction_prepare: if ENOSPC, keep the transaction dictionary.
... we need this in xbps-install to print required/free space on rootfs.

Close #101
2015-06-20 09:48:21 +02:00
1774d17e40 Keep /usr/sbin if found as obsolete, it's a symlink in void. 2015-06-05 08:29:05 +02:00
87fcc7d6a8 If pkg signature verification files, remove pkg archive and its signature file. 2015-06-04 09:59:52 +02:00
92c07c126f xbps_repo_lock: sleep() for a second if the lock is already taken.
... rather than looping continuously.
2015-06-04 08:08:40 +02:00
07e8330936 xbps-install(1): added -U --unpack-only to only unpack pkgs, skips configuration. 2015-06-03 11:15:11 +02:00
c464874c1e unpack: make sure the xucd callbacks don't get a dangling pointer.
If the current entry filename has been changed, the pointer must be updated
to point to the updated string.
2015-05-28 10:39:39 +02:00
769a997afb Introduce xbps_plist_{array,dictionary}_from_file().
Those are a wrapper around xbps_{array,dictionary}_internalize_from_zfile()
that prints a debugging msg when the plist file cannot be internalized.

Update xbps to use these wrappers.
2015-05-28 10:15:05 +02:00
2ba31e048a proplib: check for EOF a bit early on the internalized plist. 2015-05-28 09:34:03 +02:00
fd30a00cb4 proplib: fix a NULL pointer dereference when internalizing empty blobs.
_prop_object_internalize_context_alloc: make sure that passed xml string
is not NULL before derefering it a bit later.
2015-05-28 09:14:28 +02:00
4fdc8de9d6 repo: make index and index-meta dicts immutable.
For clients that want to modify its content they will need to copy a mutable
dictionary instead. This will avoid unwanted modifications.
2015-05-22 12:19:48 +02:00
5e97a1eb39 xbps_pkgdb_update: return EINVAL if pkgdb cannot be internalized. 2015-05-22 12:18:54 +02:00
da74e3dd9e libxbps: stop and error out if pkg signature is not valid. 2015-05-09 06:27:03 +02:00
c5d6556c50 xbps-remove: fix #95 (xbps-remove -R pkg lists/removes orphans) 2015-05-06 17:21:13 +02:00
ea364affc8 libxbps: open fds with O_CLOEXEC to avoid warnings of leaked fds. 2015-04-15 21:02:38 +02:00
15893caf0b fetch: support keep-alive even if the HTTP server returns 304 (Not-Modified). 2015-04-13 12:05:40 +02:00
2216c84eca libxbps: continue updating all pkgs if xbps is uptodate. 2015-03-29 11:06:18 +02:00
83ade39960 xbps now autoupdates itself exclusively if there's an update.
That was added for 0.21, but for some reason that I cannot remember it was
disabled a bit later... looks like it's useful to have.
2015-03-29 09:56:28 +02:00
9a16283575 Introduce xbps_repo_{un,}lock() to serialize write access to repodata.
We use a simple file lock that is created with O_CREAT|O_EXCL.
This should fix the concurrency issues with multiple processes
running xbps-rindex -a/-c on the same repository/arch combo.
2015-03-25 12:00:59 +01:00
dc47dfd593 xbps_get_pkg_fulldeptree: detect pkgs depending on itself via virtual pkgs.
Reported by Duncan Overbrook.

Update NEWS with recent changes.
2015-03-20 08:03:06 +01:00
f9b6dd9d2d proplib: anonymous mappings need MAP_ANON.
Somehow I removed this accidentally in a previous change... sigh.
2015-03-11 17:06:45 +01:00
95d650bdb1 lib/transaction_shlibs.c: add a printf to see what's going on. 2015-03-07 08:02:39 +01:00
441f147f05 Fix reinstallation of pkgs in repolock mode.
At the time we've been searching for the pkg in a repo, no repos
were registered resulting in EINVAL. While here, if there's no
declared repos return ENOENT instead.
2015-03-05 21:23:58 +01:00
4922c808f4 Implemented feature #77 (Add package repository locked mode)
Close #77
2015-03-03 12:11:28 +01:00
976718417b libxbps: remove "skip-obsoletes" handling; unnecessary with the mtime checks. 2015-02-26 19:51:03 +01:00
b6b446d32e libxbps: properly detect obsolete files with files being between pkgs.
120 test cases now successfully pass, and all known issues about
pkg updates that move files between them should be gone (hopefully).
2015-02-26 19:37:46 +01:00
cbe493858c libxbps: apply file timestamps to unmodified files on-disk while unpacking. 2015-02-25 11:10:18 +01:00
b133b9023c lib/package_unpack.c: wrap some long lines and fix an obvious error. 2015-02-24 09:34:39 +01:00
7e21f1ee1a xbps_symlink_target: rename var to avoid shadowing a global var. 2015-02-19 11:44:10 +01:00
9083191e4b xbps_symlink_target: double free in rootdir == '/' case. 2015-02-19 11:39:59 +01:00
6d65e76f91 xbps_symlink_target: fix a memleak. 2015-02-19 11:36:09 +01:00
a05e039cce Revert "Stop converting relative symlinks to absolute."
This reverts commit 9ae3638429.

This change is ok, but cannot be used right now because all existing
binpkgs were created with an old xbps-create(8).
2015-02-19 11:11:58 +01:00
9ae3638429 Stop converting relative symlinks to absolute.
There's no reason to make them absolute, simply store in the metadata
the target file as is. This vastly simplifies the code and makes all
test pass correctly.
2015-02-19 11:04:34 +01:00
67eba7d912 Improve detection of target file in relative symlinks.
If xbps-create(8) did not guess the target file of relative symlinks for
some reason, just compare the current symlink and what's stored as is,
without converting it to absolute.

This might happen with dangling relative symlinks or existing binary
packages that were not created with a newer xbps-create(8).
2015-02-19 10:24:24 +01:00
05f879ec09 Introduce xbps_symlink_target() and use it in two places.
This code is now shared by xbps-pkgdb and libxbps/xbps-remove.
2015-02-19 09:47:09 +01:00
1722635e08 Introduce xbps_sanitize_path() to fix #78 properly.
This removes multiple slashes of a path and returns you a buffer with
the sanitized string.
2015-02-18 15:12:39 +01:00
628a344560 libxbps: fix a memleak introduced in 1403826fa. 2015-02-17 16:39:04 +01:00