|
6d1f160e
|
2023-03-06T20:05:22
|
|
argvsplit: fix some quoting rules
|
|
212c8586
|
2023-03-17T19:32:58
|
|
Avoid undefined behaviour with the ctype(3) functions.
fix https://github.com/pkgconf/pkgconf/issues/291
As defined in the C standard:
In all cases the argument is an int, the value of which shall
be representable as an unsigned char or shall equal the value
of the macro EOF. If the argument has any other value, the
behavior is undefined.
This is because they're designed to work with the int values returned
by getc or fgetc; they need extra work to handle a char value.
If EOF is -1 (as it almost always is), with 8-bit bytes, the allowed
inputs to the ctype(3) functions are:
{-1, 0, 1, 2, 3, ..., 255}.
However, on platforms where char is signed, such as x86 with the
usual ABI, code like
char *ptr = ...;
... isspace(*ptr) ...
may pass in values in the range:
{-128, -127, -126, ..., -2, -1, 0, 1, ..., 127}.
This has two problems:
1. Inputs in the set {-128, -127, -126, ..., -2} are forbidden.
2. The non-EOF byte 0xff is conflated with the value EOF = -1, so
even though the input is not forbidden, it may give the wrong
answer.
Casting char to unsigned int first before passing the result to
ctype(3) doesn't help: inputs like -128 are unchanged by this cast,
because (on a two's-complement machine with 32-bit int and unsigned
int), converting the signed char with integer value -128 to unsigned
int gives integer value 2^32 - 128 = 0xffffff80, which is out of
range, and which is converted in int back to -128, which is also out
of range.
It is necessary to cast char inputs to unsigned char first; you can
then cast to unsigned int if you like but there's no need because the
functions will always convert the argument to int by definition. So
the above fragment needs to be:
char *ptr = ...;
... isspace((unsigned char)*ptr) ...
This patch changes unsigned int casts to unsigned char casts, and
adds unsigned char casts where they are missing.
|
|
1c3f2461
|
2022-11-22T12:29:09
|
|
pkgconf: Handle spaces correctly when expanding variables
Given the following .pc fragment:
includedir=/mingw64/include
Cflags: -I${includedir} -I${includedir}/taglib
Should includedir be assigned the value 'C:/Program\ Files/Git/mingw64/include', the expansion of ${includedir} will be chopped off after the first space:
Cflags: -IC:/Program\
With this patch, the expansion is corrected:
Cflags: -IC:/Program\ Files/Git/mingw64/include -IC:/Program\ Files/Git/mingw64/include/taglib
Create spaces-in-paths.pc
|
|
3e481581
|
2023-01-20T22:01:38
|
|
add billion-laughs test fixture
|
|
4e8f376c
|
2022-08-08T05:26:00
|
|
tests: add fixtures for github #258
|
|
666b5202
|
2022-08-07T04:40:31
|
|
tests: add tests for SPDX license assertions
|
|
18e24060
|
2022-07-26T18:03:15
|
|
tests: add omg-sysroot-uninstalled fixture
|
|
9950312f
|
2022-06-26T19:34:39
|
|
tests: add additional test fixtures
|
|
19b1befb
|
2022-06-26T19:21:52
|
|
add additional sysroot testcase fixtures
|
|
347281eb
|
2021-03-18T05:38:47
|
|
tests: add fragment-comment testcase (ref #215)
|
|
3783d657
|
2019-07-12T06:15:35
|
|
tests: add malformed-version fixture
|
|
737e326a
|
2019-01-14T14:04:50
|
|
tests: add orphaned requires.private testcase
|
|
47284486
|
2018-07-28T19:45:57
|
|
regress: add test for empty tuple buffer overflow issue
|
|
8f6e071d
|
2018-06-16T16:35:19
|
|
tests: add test fixture for bogus .pc files
|
|
ae7faf73
|
2018-06-14T16:11:21
|
|
tests: add testcase for tuple dequoting bug (legacy github bug #186)
|
|
854a6adf
|
2018-06-14T15:31:00
|
|
tests: add tuple-quoting fixture
|
|
3f753fa3
|
2018-03-18T19:03:18
|
|
libpkgconf: dependency: preference uncoloured nodes in event of a dependency collision
|
|
9a53290d
|
2018-03-18T18:00:04
|
|
tests: add new test fixtures for Requires.internal
|
|
7cce958d
|
2018-01-05T11:31:43
|
|
msvc: handle quoting correctly for cmd.exe
|
|
6073a492
|
2017-12-14T22:13:19
|
|
tests: add testcases for #163
|
|
7b1fac4c
|
2017-12-11T17:41:08
|
|
tests: remove fragment-quoting-4 and fragment-quoting-6 tests as they are not relevant anymore
|
|
95b68f7c
|
2017-09-23T00:08:12
|
|
tests: add testcase for #140
|
|
72cf8714
|
2017-09-19T21:35:18
|
|
tests: regress: add malformed quoting test
|
|
95b4930a
|
2017-07-16T17:33:42
|
|
tests: add test for github #123
|
|
0262b825
|
2017-05-19T23:33:49
|
|
libpkgconf: pkgconf_pkg_find(): correctly handle failure from pkgconf_pkg_new_from_file()
|
|
ce47fa8d
|
2017-05-05T01:40:09
|
|
tests: add reduced version of freebsd gtk+-3.0 crappy output situation as a testcase
|
|
77ca17b6
|
2017-03-29T18:00:10
|
|
tests: back out go-style test, just verify the output because shells are terrible
|
|
f5ce5fd7
|
2017-03-29T16:58:04
|
|
testsuite: add a parser test from Go (redhat #1437101)
|
|
a3fa9732
|
2017-02-25T13:57:38
|
|
testsuite: add testsuite cases for inverse quoting situations
|
|
d558e30a
|
2017-02-07T10:24:54
|
|
libpkgconf: argvsplit: quoting logic was simplified too much
|
|
02ad6d1a
|
2017-02-03T12:58:11
|
|
testsuite: add regression test for #111
|
|
8b043a10
|
2017-01-26T12:55:48
|
|
testsuite: add tests for variable whitespace
|
|
52b58ce5
|
2016-12-30T20:25:02
|
|
tests: regress: add another test case for -idirafter ordering (noticed on pkg-config bugzilla)
|
|
951a844c
|
2016-12-30T12:45:29
|
|
tests: add tests for the fragment mergeback changes
|
|
ad1e414d
|
2016-12-30T02:47:42
|
|
libpkgconf: fragment: handle -idirafter in the same way as -isystem
(https://bugs.freedesktop.org/show_bug.cgi?id=97337)
|
|
9a89bd05
|
2016-10-25T14:03:08
|
|
testsuite: add a test for #99
|
|
c81f72bf
|
2016-09-09T14:45:33
|
|
tests: provides: provide a PKG_CMP_NOT_EQUAL dependency node
|
|
892a03cd
|
2016-09-09T01:04:26
|
|
pkg: fill in a lot of the fuzzy matching stuff (but some of it may be wrong, needs to be looked at)
|
|
d304d9cb
|
2016-09-08T22:10:24
|
|
pkg: add support for 'simple' Provides rule entries (#95)
|
|
21c7355c
|
2016-08-26T21:36:18
|
|
testsuite: improve --print-provides test by adding a provides.pc file
|
|
834e21d3
|
2016-08-24T19:00:10
|
|
testsuite: add tests for normal fragments and whitespace munging, too (closes #94)
|
|
25b730fb
|
2016-05-19T17:37:27
|
|
testsuite: add a test for explicit depgraph breakage
|
|
c6676e9d
|
2016-05-19T16:47:11
|
|
testsuite: add a test for #87
|
|
32bd6bd7
|
2015-12-07T23:29:27
|
|
Add a regression tests about define-variable
|
|
abbd6b06
|
2015-09-27T16:07:06
|
|
Revert "Merge pull request #81 from dankegel/quotefest"
This reverts commit 42551f6364ab0e024e68ed03ef39c9688140fc88, reversing
changes made to 938bb9e694c6d377bad29a0fa6856d6ce98c8033.
|
|
d0bbc686
|
2015-09-10T16:49:52
|
|
Add tests for libraries quoted with double quotes, make them pass
|
|
b88808f7
|
2015-09-10T16:36:07
|
|
Test escaped space in a library name
|
|
d67a0401
|
2015-07-20T03:10:27
|
|
testsuite: use /test as an explicit prefix on all tests
|
|
72c6e923
|
2015-07-19T23:00:35
|
|
Ensure -I is never merged back as well
|
|
5a8dadaf
|
2015-07-19T22:49:36
|
|
Ensure -L is never merged back
|
|
face849e
|
2015-05-21T22:14:08
|
|
tests: fix validation on private-libs-duplication test
|
|
b26374a5
|
2015-05-21T22:03:02
|
|
tests: add an additional test for more complicated --static relationships
|
|
1dc28ba6
|
2015-04-23T21:45:26
|
|
testsuite: regression test for parsing comments
Add a test case about a regression that happened when parsing comments
(bug #75)
|
|
1c1c7fcd
|
2015-04-20T09:23:13
|
|
testsuite: fix comments in fields testcase
|
|
b700a6cd
|
2015-04-20T09:19:33
|
|
add testcase for comments in fields (grr, nettle)
|
|
ff6c9c96
|
2015-02-02T17:29:39
|
|
Add a test for multiline descriptions
Found in tracker-sparql project
|
|
bff5f15d
|
2014-07-31T16:15:31
|
|
Support .pc file without a trailing newline
Some editors write text files without a newline character at the end of
the last line.
Before this change, the main loop in pkg_new_from_file() expected a
newline character at the end of the line and overwrote it with a NUL
character. In the case of the last line in a non-newline-terminated
file, this ate the last character of that line.
Now, the pkg_fgetline() function takes care of returning a line without
the newline character (or the "\r\n" sequence in case of a DOS file
format).
|
|
12ff14f8
|
2014-07-09T01:23:51
|
|
fragments: handle sysroot dir munging directly in a smarter way
Previously we just let the tuple system handle it, but pkg-config modules which do not define
variables were able to get by the checks. While here, check to ensure we do not duplicate the
sysroot dir twice if it is already defined in the pkg-config module file.
Downstream bug: https://bugs.busybox.net/show_bug.cgi?id=5750
|
|
c80229c6
|
2014-07-01T23:30:59
|
|
tests: add test for #67
|
|
8cf58d7c
|
2014-02-10T23:50:45
|
|
tests: add test for variable case-sensitivity (ref #60)
|
|
dd975df1
|
2013-08-24T13:58:41
|
|
Add test for multiple dependencies on base package
|
|
9d960fb9
|
2013-08-23T03:44:33
|
|
fragment: use forward-merge for static linking (closes #51)
|
|
2a638d4f
|
2013-08-23T02:41:59
|
|
Add test for Libs.private deduplication (issue #51).
|
|
1c658f03
|
2013-08-14T15:36:43
|
|
add Cflags.private fragment
|
|
7ecf1e27
|
2013-03-15T17:12:06
|
|
tests: add tests for bug #47
|
|
9dc3cbc7
|
2013-02-24T07:04:15
|
|
testsuite: add a test for tilde quoting
|
|
29369270
|
2013-02-24T06:58:51
|
|
testsuite: add test for static archives in Libs:
|
|
b1949e77
|
2013-02-24T06:42:03
|
|
testsuite: add tests for circular dependencies
|
|
beda1fff
|
2013-02-24T06:29:53
|
|
testsuite: add pkg-config files creating an intentional circular dependency
|
|
87d2ec55
|
2012-09-14T15:35:18
|
|
tests: simplify test 17 to remove $(SYSTEM_LIBDIR) fluff
|
|
749a604c
|
2012-09-02T17:34:44
|
|
tests: add test for freedesktop.org bug 54271
|
|
4eedb041
|
2012-08-20T22:47:10
|
|
if no cflags or libs are defined in .pc just return 0 and output nothing
|
|
ab48da3f
|
2012-08-14T11:12:01
|
|
Keep the backslash when parsing arguments (fixes #35)
|
|
9a263375
|
2012-08-12T12:32:31
|
|
return 1 and do not output anything a requirement is missing
|
|
c80b0887
|
2012-08-09T16:43:20
|
|
tests: add tests for issue #34
|
|
dde29619
|
2012-07-30T01:31:14
|
|
tests: add test for multiline crasher
|
|
197cb9b9
|
2012-07-25T17:23:21
|
|
tests: add tests for cflags/libs-only ordering flags
|
|
c544e9e0
|
2012-07-25T17:07:34
|
|
tests: add test for argv-parse splitting issue with filenames
|
|
5f168493
|
2012-07-23T20:53:20
|
|
tests: add tests for dpkg-style tilde version comparison rules
|
|
948e2190
|
2012-05-11T20:32:32
|
|
tests: add tests for 'conflicts' field (issue #13)
|
|
f70555e7
|
2012-05-05T23:09:34
|
|
tests: add tests for --uninstalled option
|
|
1ac3cbd4
|
2012-05-05T20:21:16
|
|
tests/dos-lineendings: fix committed version
|
|
4e954013
|
2012-05-05T17:43:53
|
|
tests: add test for argv-parse bug causing audacious build failure
|
|
f1d13ef0
|
2012-05-04T03:08:55
|
|
tests: add dos-lineendings test
|
|
23e31fd7
|
2012-05-03T09:15:32
|
|
Add tests for 'Requires' and '.private'.
|
|
97b8c093
|
2012-05-03T08:50:57
|
|
Add minimal tests.
|