Fix progress bar overflow while checking package integrity
On 32bit systems, the progress bar intergrity checking can show values greater than 100% with large transactions. This is due to the total size of all package files being greater than a size_t. Use uint64_t for these sizes. Fixes FS#36608 Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
3e903d34cc
commit
dcfc247a2c
1 changed files with 5 additions and 3 deletions
|
@ -1054,7 +1054,7 @@ static int check_keyring(alpm_handle_t *handle)
|
||||||
#endif /* HAVE_LIBGPGME */
|
#endif /* HAVE_LIBGPGME */
|
||||||
|
|
||||||
static int check_validity(alpm_handle_t *handle,
|
static int check_validity(alpm_handle_t *handle,
|
||||||
size_t total, size_t total_bytes)
|
size_t total, uint64_t total_bytes)
|
||||||
{
|
{
|
||||||
struct validity {
|
struct validity {
|
||||||
alpm_pkg_t *pkg;
|
alpm_pkg_t *pkg;
|
||||||
|
@ -1064,7 +1064,8 @@ static int check_validity(alpm_handle_t *handle,
|
||||||
alpm_pkgvalidation_t validation;
|
alpm_pkgvalidation_t validation;
|
||||||
alpm_errno_t error;
|
alpm_errno_t error;
|
||||||
};
|
};
|
||||||
size_t current = 0, current_bytes = 0;
|
size_t current = 0;
|
||||||
|
uint64_t current_bytes = 0;
|
||||||
alpm_list_t *i, *errors = NULL;
|
alpm_list_t *i, *errors = NULL;
|
||||||
|
|
||||||
/* Check integrity of packages */
|
/* Check integrity of packages */
|
||||||
|
@ -1197,7 +1198,8 @@ static int load_packages(alpm_handle_t *handle, alpm_list_t **data,
|
||||||
int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t **data)
|
int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t **data)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *deltas = NULL;
|
alpm_list_t *i, *deltas = NULL;
|
||||||
size_t total = 0, total_bytes = 0;
|
size_t total = 0;
|
||||||
|
uint64_t total_bytes = 0;
|
||||||
alpm_trans_t *trans = handle->trans;
|
alpm_trans_t *trans = handle->trans;
|
||||||
|
|
||||||
if(download_files(handle, &deltas)) {
|
if(download_files(handle, &deltas)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue