Commit Graph

20 Commits (bd4ed1ca026c7244388888c2203f5cffa293d464)

Author SHA1 Message Date
William Pitcock 662957ca7d libpkgconf: tuple: tighten quoting logic a bit
closes #12
2019-03-23 22:34:11 -05:00
A. Wilcox 9b7affe0b1
tuple: Ensure buf length is always >= 1 in dequote
If a key is defined with no value, dequote will allocate a buffer with a
length of 0.  Since the buffer's length is 0, any manipulation of its
content is UB.

Example .pc file:

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

xcflags=
xlibs= -lSM -lICE  -lX11

Name: Obt
Description: Openbox Toolkit Library
Version: 3.6
Requires: glib-2.0 libxml-2.0
Libs: -L${libdir} -lobt ${xlibs}
Cflags: -I${includedir}/openbox/3.6 ${xcflags}

Output using pkgconf 1.5.2 on x86_64 Linux/musl:

% pkgconf --cflags obt-3.5
-I/usr/include/openbox/3.6 \�\\�I\�\ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
2018-07-28 19:06:33 -05:00
William Pitcock b46bb93cd1 libpkgconf: tuple: properly dequote tuples when added from the parser (closes legacy github bug #186) 2018-06-14 16:12:04 -05:00
William Pitcock 973aff21e9 libpkgconf: tuple: add some trace logging 2017-12-11 17:39:12 -06:00
William Pitcock 4589274c43 libpkgconf: start to remove PKGCONF_BUFSIZE allocations from the stack. (closes #149)
Patch by Karen Arutyunov.
2017-10-16 12:56:19 -05:00
Baptiste Daroussin 6985a179c1 libpkgconf: Fix issue when sysroot is '/'
If sysroot is /, simply do nothing.

This fixes #146
2017-10-11 17:05:35 +02:00
William Pitcock e9fd43caa7 libpkgconf: clean up header includes (closes #137) 2017-09-17 23:38:25 -05:00
William Pitcock b9dac13ef3 libpkgconf: tuple: pkgconf_tuple_parse(): remove unnecessary static buffer declaration 2017-09-08 19:17:38 -05:00
William Pitcock 9505213c1b tuple: check expanded variables to see if a sysroot has been duplicated, and if so, remove the prepended sysroot.
This allows compatibility between legacy pkg-config's broken sysroot implementation and pkgconf's sysroot
implementation, by removing any prepended sysroot paths and preferencing the variable expansion sysroot path
we typically do instead.

Closes github #123.
2017-07-16 17:37:41 -05:00
William Pitcock e6c49153ff libpkgconf: document tuple module 2016-12-11 17:28:27 -06:00
William Pitcock 8213d91038 libpkgconf: migrate to using the pkgconf_ namespaced strlcat/strlcpy symbols 2016-12-10 16:19:40 -06:00
William Pitcock 792cd7c8e6 libpkgconf: tuple: handle sysroot without the need of PKGCONF_PKG_PKGF_MUNGE_SYSROOT_PREFIX 2016-12-09 21:32:55 -06:00
William Pitcock 92e9b78371 libpkgconf: tuple: when calling pkgconf_tuple_add() on a collection that already has a tuple entry for 'key', replace it instead of adding a new entry 2016-12-09 20:58:15 -06:00
William Pitcock f7b7853932 libpkgconf: tuple: add pkgconf_tuple_free_entry() to free a specific tuple node 2016-12-09 20:50:33 -06:00
William Pitcock 8740c5cd55 libpkgconf: begin removing global state from libpkgconf library by introducing a "client" object which holds the state 2016-12-01 15:05:03 -06:00
Baptiste Daroussin 1fe91b914c Do not parse the global variables
This fixes an incompatibility with pkg-confing 0.29
Found by Thomas Klausner <wiz@NetBSD.org> when building gupnp-igd-0.2.3
with introspection support
2015-12-08 00:02:14 +01:00
William Pitcock 571d9c756c libpkgconf: PKG_BUFSIZE becomes PKGCONF_BUFSIZE, remove unused PKG_MIN/PKG_MAX. 2015-09-06 11:29:56 -05:00
William Pitcock 4c71b25d5d libpkgconf: move pkg_tuple to pkgconf_tuple namespace 2015-09-06 10:41:40 -05:00
William Pitcock cc2dcc1f5d libpkgconf: move pkg_node and pkg_list to pkgconf_node and pkgconf_list namespaces 2015-09-06 10:31:21 -05:00
William Pitcock a706b3dccc initial libtoolization for libpkgconf 2015-09-06 09:35:08 -05:00