Commit Graph

3020 Commits

Author SHA1 Message Date
Agustin Chiappe Berrini
2cd0dc688f Fix compilation of initend for gcc 7
This is a trickier situation.

The original message:

```
initend.c:423:10: error: ‘%s’ directive output may be truncated writing 15 bytes into a region of size between 1 and 512 [-Werror=format-truncation=]
       "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
          ^~
initend.c:422:3: note: ‘snprintf’ output between 16 and 527 bytes into a destination of size 512
   snprintf(xhp->confdir, sizeof(xhp->confdir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_SYSCONF_PATH);
       ~~~~~~~~~~~~~~~~~~
initend.c:429:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:428:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->confdir, sizeof(xhp->confdir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initend.c:434:9: error: ‘%s’ directive output may be truncated writing 17 bytes into a region of size between 1 and 512 [-Werror=format-truncation=]
      "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
         ^~
initend.c:433:2: note: ‘snprintf’ output between 18 and 529 bytes into a destination of size 512
  snprintf(sysconfdir, sizeof(sysconfdir),
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      "%s%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      XBPS_SYSDEFCONF_PATH);
      ~~~~~~~~~~~~~~~~~~~~~
initend.c:455:11: error: ‘%s’ directive output may be truncated writing 14 bytes into a region of size between 0 and 511 [-Werror=format-truncation=]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
           ^~
initend.c:454:3: note: ‘snprintf’ output between 16 and 527 bytes into a destination of size 512
   snprintf(xhp->cachedir, sizeof(xhp->cachedir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_CACHE_PATH);
       ~~~~~~~~~~~~~~~~
initend.c:461:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:460:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->cachedir, sizeof(xhp->cachedir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initend.c:467:11: error: ‘%s’ directive output may be truncated writing 12 bytes into a region of size between 0 and 511 [-Werror=format-truncation=]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
           ^~
initend.c:466:3: note: ‘snprintf’ output between 14 and 525 bytes into a destination of size 512
   snprintf(xhp->metadir, sizeof(xhp->metadir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "",
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       XBPS_META_PATH);
       ~~~~~~~~~~~~~~~
initend.c:473:7: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation ]
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ^~~~~~~
initend.c:472:3: note: ‘snprintf’ output 2 or more bytes (assuming 513) into a destination of size 512
   snprintf(xhp->metadir, sizeof(xhp->metadir),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       "%s/%s", strcmp(xhp->rootdir, "/") ? xhp->rootdir : "", buf);
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
```

It's basically warning about dangerous operations on strings. And as
far as I could tell, is a valid warning and not a false alarm!

This fix makes the concept of `XBPS_MAXPATH` lose a little bit of sense
as now it doesn't necessarily represent the max size of the paths used
by xbps, but instead the max allowed size of the path configured.

I think this change is ok, but I wasn't able to find any reference to
why it was chosen to be 512. POSIX mandates at least 256, so I'm not
breaking anything that wasn't broken already, and Linux seems to have
a maximum size of 4096, which is pretty safe.

Therefore, this changes should be harmless. I think.
2017-08-22 18:35:45 -04:00
Agustin Chiappe Berrini
be5277591f Fix compilation in ftp.c
When trying to compile the file ftp.c, I get errors related with
warnings that were marked to be reported as error.

This was the original message:

```
fetch/ftp.c:444:8: error: this statement may fall through [-Werror=implicit-fallthrough=]
   type = 'D';
   ~~~~~^~~~~
fetch/ftp.c:445:2: note: here
  case 'D':
  ^~~~
fetch/ftp.c: In function ‘ftp_request’:
fetch/ftp.c:342:3: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
   ^~~
fetch/ftp.c:342:24: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
               ~~~~~~~~~^~~~~~~~~~~~~~~~~
```
2017-08-22 18:03:32 -04:00
Leah Neukirchen
876f9f4a27 xbps-fbulk: use _DEFAULT_SOURCE, required for wait3 in glibc 2.16.
Also these guards need to be defined before including anything.
2017-08-07 16:08:15 +02:00
Michael Gehring
52d3077206 bin/xbps-checkvers: avoid infinite loops when checking reverts 2017-07-16 20:08:25 +00:00
Michael Gehring
a2aec39d74 lib/package_unpack.c: refuse to unpack to absolute paths 2017-07-13 17:17:12 +00:00
Michael Gehring
63596b5a06 xbps-remove.1: fix invalid escape 2017-07-11 04:30:23 +02:00
Michael Gehring
0886012d72 xbps-reconfigure.1: fix invalid escape 2017-07-11 04:30:03 +02:00
Michael Gehring
25418f98af xbps-query.1: fix invalid escape 2017-07-11 04:29:45 +02:00
Michael Gehring
a61fd5f8c1 xbps-pkgdb.1: fix invalid escape 2017-07-11 04:29:19 +02:00
Michael Gehring
b9656b1546 xbps-install.1: fix invalid escape 2017-07-11 04:28:57 +02:00
Michael Gehring
681acd08ef xbps-dgraph.1: fix invalid escape 2017-07-11 04:28:34 +02:00
Michael Gehring
ae3f5546bf xbps-checkvers.1: fix invalid escape 2017-07-11 04:28:13 +02:00
Michael Gehring
13a38fa6ba xbps-alternatives.1: fix invalid escape 2017-07-11 04:27:51 +02:00
Michael Gehring
cdb5bcdd0c xbps.d.5: fix invalid escape 2017-07-11 04:01:38 +02:00
Michael Gehring
4aae026615 lib/package_unpack.c: verify signed pkgver matches
$ARCH-repodata is currently not protected by a signature. While most of
the package metadata is also embedded into the .xbps files, which are
protected by a signature, xbps-install ignores it
(1670ff000d/lib/package_unpack.c (L123))
and relies entirely on $ARCH-repodata.

This enables anyone who is able to modify the $ARCH-repodata to
substitute packages. This patch adds a check that verifies the signed
pkgver matches the one in the repodata, so at least downgrades posing as
updates are detected.

This is an incomplete fix as the whole transaction is still set up with
the unsigned repodata and other issues surely exist. The real fix is
signing $ARCH-repodata.
2017-07-09 12:46:01 +00:00
Michael Gehring
5e4f445b90 bin/xbps-rindex: use xbps_file_hash_raw while signing
Fixes #243
2017-06-27 20:05:15 +02:00
Duncaen
e797936c40 lib/repo_sync.c: sane umask for repodata files 2017-02-27 18:50:19 +01:00
Duncaen
332fbc195a lib/package_unpack.c: set a sane umask for pkg files plists 2017-02-27 18:24:51 +01:00
Duncaen
44778867df lib/pkgdb.c: set a sane umask for pkgdb plist 2017-02-27 18:24:46 +01:00
Juan RP
66c6331689 NEWS: sync 2017-02-19 02:54:00 +01:00
Juan RP
1670ff000d Merge pull request #206 from Duncaen/memleak
fix some some memory leaks
2017-02-19 02:46:50 +01:00
Juan RP
a7f2080367 Merge pull request #198 from roman-neuhauser/package-modes
xbps-pkgdb(1), xbps-install(1), xbps-remove(1): extend discussion of package modes
2017-02-19 02:45:58 +01:00
Juan RP
956ec93f45 Merge pull request #202 from ebfe/list-repolock
bin/xbps-query: add --list-repolock-pkgs
2017-02-19 02:45:51 +01:00
Juan RP
a53bcef00b Merge pull request #196 from Duncaen/xbps-uchroot
xbps-uchroot: umount chroot mounts
2017-02-19 02:44:43 +01:00
ojab
e8c1ae96ae Fix -l flags order in feature detection 2017-01-02 18:39:23 +01:00
Alain Kalker
69a5ee2c1b xbps-checkvers.1: fix incorrect double negative (#219) 2016-12-25 21:21:28 +01:00
Christian Neukirchen
c255ede2ca _xbps: add run_depends to _xbps_properties. 2016-11-22 17:04:24 +01:00
Christian Neukirchen
392d686f07 _xbps: add alternatives and build-date to _xbps_properties. 2016-11-22 16:58:02 +01:00
Josh de Kock
21492ca1bf configure: check for --no-as-needed before using (#217) 2016-11-04 07:49:48 +01:00
Enno Boland
c3068808a2 Merge pull request #211 from ebfe/flush-progress
bin/xbps-install/fetch_cb.c: flush stdout when printing progress
2016-10-18 13:05:42 +02:00
Michael Gehring
2984d6a5ec bin/xbps-install/fetch_cb.c: flush stdout when printing progress 2016-10-05 20:18:43 +02:00
Duncaen
6cca905d64 bin/xbps-uunshare: stop option parsing at the first nonoption argument 2016-09-25 22:26:47 +02:00
Duncaen
948ba8d7d1 bin/xbps-uchroot: stop option parsing at the first nonoption argument 2016-09-25 22:26:38 +02:00
Duncaen
2a6e805bb4 bin/xbps-uunshare: allow relative chroot directory 2016-09-25 22:23:17 +02:00
Duncaen
c5784e9cc3 bin/xbps-uchroot: allow relative chroot directory 2016-09-25 22:23:05 +02:00
Duncaen
cf43597e74 lib/package_unpack.c: add memleak notice 2016-09-25 21:47:58 +02:00
Duncaen
797796e086 lib/transaction_shlibs.c: fix memleak 2016-09-25 21:47:40 +02:00
Duncaen
4797dee468 lib/package_configure.c: fix memleak 2016-09-25 21:27:46 +02:00
Duncaen
81673d69c7 bin/xbps-rindex: fix memleaks in index_add 2016-09-25 21:27:38 +02:00
Roman Neuhauser
d0b4089e6e xbps-install(1), xbps-remove(1) point to xbps-pkgdb(1)
... from descriptions of -A and -u (xbps-install) and -o (xbps-remove).
2016-09-21 14:56:17 +02:00
Roman Neuhauser
025b133025 xbps-pkgdb(1): extend discussion of package modes
description of implications of the various modes was scattered across
xbps-pkgdb(1), xbps-install(1), xbps-remove(1).
2016-09-21 14:56:17 +02:00
Michael Gehring
3dce6ab1ed bin/xbps-query: add --list-repolock-pkgs 2016-09-21 14:11:04 +02:00
Duncaen
414256292a bin/xbps-uchroot: mount / as private 2016-09-20 17:45:56 +02:00
Duncaen
bc5b38218a bin/xbps-uchroot: call clone only once if its successful 2016-09-20 17:39:13 +02:00
Christian Neukirchen
7d06fb0e71 _xbps, _xbps-src: add aarch64 completion. 2016-09-17 17:37:04 +02:00
Enno Boland
7967efc1e0 xbps-install: do not fail on update if any of the provided packages are up to date.
addresses #194
2016-09-14 18:12:54 +02:00
Enno Boland
1ffac73f54 Merge pull request #192 from jantatje/clean-cache-dry-run
xbps-remove: fix --dry-run for --clean-cache
2016-09-07 22:03:28 +02:00
Jan Tatje
46be602e28 xbps-remove: fix --dry-run for --clean-cache
`xbps-remove --clean-cache --dry-run` did not consider the
--dry-run flag, this has been fixed.
2016-09-07 21:56:01 +02:00
Juan RP
e4907adfe7 Merge pull request #187 from weakish/free-space-message
Change free space message to avoid ambiguity.
2016-09-07 07:49:12 +02:00
Juan RP
b0c5be169a Merge pull request #193 from Duncaen/alternatives
xbps-alternativs fixes and more
2016-09-07 07:47:12 +02:00