[Pkg-sssd-devel] ding-libs: Changes to 'master'
Timo Aaltonen
tjaalton at moszumanska.debian.org
Sat Dec 23 04:20:56 UTC 2017
.git-commit-template | 9 +
Makefile.am | 27 ++-
collection/collection.c | 5
collection/collection_tools.c | 2
configure.ac | 5
contrib/ding-libs.spec.in | 6
debian/changelog | 9 +
debian/compat | 2
debian/control | 7
debian/copyright | 2
debian/rules | 2
debian/watch | 2
dhash/dhash.c | 31 ++-
dhash/dhash.h | 4
dhash/dhash_ut_check.c | 226 +++++++++++++++++++++++++++
dhash/examples/dhash_test.c | 3
ini/ini.d/merge.validator | 16 -
ini/ini_augment.c | 120 ++++++--------
ini/ini_augment_ut_check.c | 343 ++++++++++++++++++++++++++++++++++++++++++
ini/ini_configmod.c | 3
ini/ini_configobj.c | 71 +++++---
ini/ini_configobj.h | 9 -
ini/ini_defines.h | 5
ini/ini_fileobj.c | 1
ini/ini_get_value.c | 4
ini/ini_get_valueobj.c | 1
ini/ini_parse.c | 71 +++-----
ini/ini_parse_ut_check.c | 157 +++++++++++++++++++
version.m4 | 6
29 files changed, 962 insertions(+), 187 deletions(-)
New commits:
commit 24ad3a0d4ac0fe88db6d3eac59f2abb9654ecaa2
Author: Timo Aaltonen <tjaalton at debian.org>
Date: Sat Dec 23 06:20:20 2017 +0200
releasing package ding-libs version 0.6.1-1
diff --git a/debian/changelog b/debian/changelog
index fe1d274..1c05507 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-ding-libs (0.6.1-1) UNRELEASED; urgency=medium
+ding-libs (0.6.1-1) unstable; urgency=medium
* New upstream release.
* Update urls.
* Bump debhelper to 10.
* Bump policy to 4.1.2, no changes.
- -- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 05:59:06 +0200
+ -- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 06:19:59 +0200
ding-libs (0.6.0-1) unstable; urgency=medium
commit 0ba23fd51cddb5606353c90ae6ecf2aa431b39a2
Author: Timo Aaltonen <tjaalton at debian.org>
Date: Sat Dec 23 06:06:08 2017 +0200
Bump policy to 4.1.2, no changes.
diff --git a/debian/changelog b/debian/changelog
index 5bf69db..fe1d274 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ ding-libs (0.6.1-1) UNRELEASED; urgency=medium
* New upstream release.
* Update urls.
* Bump debhelper to 10.
+ * Bump policy to 4.1.2, no changes.
-- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 05:59:06 +0200
diff --git a/debian/control b/debian/control
index 947cdaa..551b6ec 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 10),
quilt,
check,
pkg-config,
-Standards-Version: 3.9.8
+Standards-Version: 4.1.2
Homepage: https://pagure.io/SSSD/ding-libs
Vcs-Git: https://anonscm.debian.org/git/pkg-sssd/ding-libs.git
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-sssd/ding-libs.git
commit de6cfa8bab43aff934735cf305cd4b232adc63f4
Author: Timo Aaltonen <tjaalton at debian.org>
Date: Sat Dec 23 06:04:44 2017 +0200
Bump debhelper to 10.
diff --git a/debian/changelog b/debian/changelog
index a8aa288..5bf69db 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ ding-libs (0.6.1-1) UNRELEASED; urgency=medium
* New upstream release.
* Update urls.
+ * Bump debhelper to 10.
-- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 05:59:06 +0200
diff --git a/debian/compat b/debian/compat
index ec63514..f599e28 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index ae6fa55..947cdaa 100644
--- a/debian/control
+++ b/debian/control
@@ -3,8 +3,7 @@ Section: libs
Priority: extra
Maintainer: Debian SSSD Team <pkg-sssd-devel at lists.alioth.debian.org>
Uploaders: Timo Aaltonen <tjaalton at debian.org>
-Build-Depends: debhelper (>= 9),
- dh-autoreconf,
+Build-Depends: debhelper (>= 10),
quilt,
check,
pkg-config,
diff --git a/debian/rules b/debian/rules
index ab7c542..b79bbdc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,7 +5,7 @@
#export DH_VERBOSE=1
%:
- dh $@ --with quilt,autoreconf
+ dh $@ --with quilt
override_dh_install:
# remove files we don't want to install
commit 93fe3b3d7bca199cc7aeedfa49fdc526fb0a9e23
Author: Timo Aaltonen <tjaalton at debian.org>
Date: Sat Dec 23 06:02:00 2017 +0200
Update urls.
diff --git a/debian/changelog b/debian/changelog
index b3b31ac..a8aa288 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
ding-libs (0.6.1-1) UNRELEASED; urgency=medium
* New upstream release.
+ * Update urls.
-- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 05:59:06 +0200
diff --git a/debian/control b/debian/control
index d34dbcc..ae6fa55 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9),
check,
pkg-config,
Standards-Version: 3.9.8
-Homepage: https://fedorahosted.org/sssd/
+Homepage: https://pagure.io/SSSD/ding-libs
Vcs-Git: https://anonscm.debian.org/git/pkg-sssd/ding-libs.git
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-sssd/ding-libs.git
diff --git a/debian/copyright b/debian/copyright
index 3f83b9b..1d75ab3 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,6 +1,6 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ding-libs
-Source: https://fedorahosted.org/sssd/wiki/Releases#DING-LIBSReleases
+Source: https://pagure.io/SSSD/ding-libs
Files: *
Copyright: 2009-2016 Dmitri Pal <dpal at redhat.com>
diff --git a/debian/watch b/debian/watch
index 08675e8..7601933 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,2 +1,2 @@
version=3
-https://fedorahosted.org/released/ding-libs/ding-libs-(.*).tar.gz
+https://releases.pagure.org/SSSD/ding-libs/ding-libs-(.*).tar.gz
commit 57c85e1dc00ce14187bd7e6e4c90cafe7090da4c
Author: Timo Aaltonen <tjaalton at debian.org>
Date: Sat Dec 23 05:59:44 2017 +0200
update changelog
diff --git a/debian/changelog b/debian/changelog
index 4f9c4a4..b3b31ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ding-libs (0.6.1-1) UNRELEASED; urgency=medium
+
+ * New upstream release.
+
+ -- Timo Aaltonen <tjaalton at debian.org> Sat, 23 Dec 2017 05:59:06 +0200
+
ding-libs (0.6.0-1) unstable; urgency=medium
* New upstream release.
commit ee13e47d309a87d8631cef92df3a47c0c734741d
Author: Michal Židek <mzidek at redhat.com>
Date: Thu Sep 7 11:58:34 2017 +0200
Update versions before 0.6.1 release
Reviewed-by: Lukas Slebodnik <lslebodn at redhat.com>
diff --git a/version.m4 b/version.m4
index 08814fe..6022c18 100644
--- a/version.m4
+++ b/version.m4
@@ -1,5 +1,5 @@
# Primary version number
-m4_define([VERSION_NUMBER], [0.6.0])
+m4_define([VERSION_NUMBER], [0.6.1])
# If the PRERELEASE_VERSION_NUMBER is set, we'll append
# it to the release tag when creating an RPM or SRPM
@@ -11,8 +11,8 @@ m4_define([VERSION_NUMBER], [0.6.0])
m4_define([PRERELEASE_VERSION_NUMBER], [])
m4_define([PATH_UTILS_VERSION_NUMBER], [0.2.1])
-m4_define([DHASH_VERSION_NUMBER], [0.4.3])
+m4_define([DHASH_VERSION_NUMBER], [0.5.0])
m4_define([COLLECTION_VERSION_NUMBER], [0.7.0])
m4_define([REF_ARRAY_VERSION_NUMBER], [0.1.5])
m4_define([BASICOBJECTS_VERSION_NUMBER], [0.1.1])
-m4_define([INI_CONFIG_VERSION_NUMBER], [1.3.0])
+m4_define([INI_CONFIG_VERSION_NUMBER], [1.3.1])
commit 403a6fefe7a06c1136e0f0e40391e5f2ec6a8981
Author: Michal Židek <mzidek at redhat.com>
Date: Thu Sep 7 12:29:47 2017 +0200
Bump version info
Changes have been made to:
- libdhash - added new key type for constant strings (added interface)
- libcollection - just updated code (no interface changes)
- libini_config - allowed new combination of parsing flags (no interface changes)
Reviewed-by: Lukas Slebodnik <lslebodn at redhat.com>
diff --git a/Makefile.am b/Makefile.am
index 81e40e1..d032739 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -110,7 +110,7 @@ dist_include_HEADERS += dhash/dhash.h
libdhash_la_SOURCES = dhash/dhash.c
libdhash_la_DEPENDENCIES = dhash/libdhash.sym
libdhash_la_LDFLAGS = \
- -version-info 1:2:0 \
+ -version-info 2:0:1 \
-Wl,--version-script=$(top_srcdir)/dhash/libdhash.sym
check_PROGRAMS += dhash_test dhash_example
@@ -166,7 +166,7 @@ libcollection_la_SOURCES = \
trace/trace.h
libcollection_la_DEPENDENCIES = collection/libcollection.sym
libcollection_la_LDFLAGS = \
- -version-info 5:0:1 \
+ -version-info 5:1:1 \
-Wl,--version-script=$(top_srcdir)/collection/libcollection.sym
check_PROGRAMS += \
@@ -292,7 +292,7 @@ libini_config_la_LIBADD = \
libref_array.la \
libbasicobjects.la
libini_config_la_LDFLAGS = \
- -version-info 7:0:2 \
+ -version-info 7:1:2 \
-Wl,--version-script=$(top_srcdir)/ini/libini_config.sym
dist_noinst_DATA += \
diff --git a/contrib/ding-libs.spec.in b/contrib/ding-libs.spec.in
index 3fc079c..0f9b877 100644
--- a/contrib/ding-libs.spec.in
+++ b/contrib/ding-libs.spec.in
@@ -131,7 +131,7 @@ time properties
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_libdir}/libdhash.so.1
-%{_libdir}/libdhash.so.1.0.2
+%{_libdir}/libdhash.so.1.1.0
%files -n libdhash-devel
%defattr(-,root,root,-)
@@ -175,7 +175,7 @@ and serialization
%doc COPYING
%doc COPYING.LESSER
%{_libdir}/libcollection.so.4
-%{_libdir}/libcollection.so.4.1.0
+%{_libdir}/libcollection.so.4.1.1
%files -n libcollection-devel
%defattr(-,root,root,-)
@@ -304,7 +304,7 @@ structure
%doc COPYING
%doc COPYING.LESSER
%{_libdir}/libini_config.so.5
-%{_libdir}/libini_config.so.5.2.0
+%{_libdir}/libini_config.so.5.2.1
%files -n libini_config-devel
%defattr(-,root,root,-)
commit b73372021f343e6ef50acadea8786bfb297af75c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 19:24:06 2017 +0200
DHASH: Do not use c99 structure initialisation
c99 allows to initialize a structure by specifying the structure
element names e.g. point = { .x = 0, .y = 0};
But it was used just in unit test and therefore it does not make a
sense to increase requirements from c89 -> c99
Reviewed-by: Michal Židek <mzidek at redhat.com>
merges: https://pagure.io/SSSD/ding-libs/pull-request/3180
diff --git a/dhash/dhash_ut_check.c b/dhash/dhash_ut_check.c
index 246e162..e724931 100644
--- a/dhash/dhash_ut_check.c
+++ b/dhash/dhash_ut_check.c
@@ -40,9 +40,16 @@ START_TEST(test_key_const_string)
hash_table_t *htable;
int ret;
hash_value_t ret_val;
- hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
- hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
- hash_key_t key = {.type = HASH_KEY_CONST_STRING, .c_str = "constant"};
+ hash_value_t enter_val1;
+ hash_value_t enter_val2;
+ hash_key_t key;
+
+ enter_val1.type = HASH_VALUE_INT;
+ enter_val1.i = 1;
+ enter_val2.type = HASH_VALUE_INT;
+ enter_val2.i = 2;
+ key.type = HASH_KEY_CONST_STRING;
+ key.c_str = "constant";
ret = hash_create(HTABLE_SIZE, &htable, NULL, NULL);
fail_unless(ret == 0);
@@ -87,11 +94,15 @@ START_TEST(test_key_string)
hash_table_t *htable;
int ret;
hash_value_t ret_val;
- hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
- hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
+ hash_value_t enter_val1;
+ hash_value_t enter_val2;
hash_key_t key;
char str[] = "non_constant";
+ enter_val1.type = HASH_VALUE_INT;
+ enter_val1.i = 1;
+ enter_val2.type = HASH_VALUE_INT;
+ enter_val2.i = 2;
key.type = HASH_KEY_STRING;
key.str = str;
@@ -139,9 +150,16 @@ START_TEST(test_key_ulong)
hash_table_t *htable;
int ret;
hash_value_t ret_val;
- hash_value_t enter_val1 = {.type = HASH_VALUE_INT, .i = 1};
- hash_value_t enter_val2 = {.type = HASH_VALUE_INT, .i = 2};
- hash_key_t key = {.type = HASH_KEY_ULONG, .ul = 68ul};
+ hash_value_t enter_val1;
+ hash_value_t enter_val2;
+ hash_key_t key;
+
+ enter_val1.type = HASH_VALUE_INT;
+ enter_val1.i = 1;
+ enter_val2.type = HASH_VALUE_INT;
+ enter_val2.i = 2;
+ key.type = HASH_KEY_ULONG;
+ key.ul = 68ul;
ret = hash_create(HTABLE_SIZE, &htable, NULL, NULL);
fail_unless(ret == 0);
commit 321e84768a75fb5bbbbec8922d50f1de59affe4c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:45:49 2017 +0200
COLLECTION: Fix misused comma
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/collection/collection_tools.c b/collection/collection_tools.c
index 7e60285..36282a0 100644
--- a/collection/collection_tools.c
+++ b/collection/collection_tools.c
@@ -647,7 +647,7 @@ int col_print_item(struct collection_item *handle, const char *name)
else {
if (buf_data.buffer != NULL) {
if (buf_data.length > 0) buf_data.length--;
- buf_data.buffer[buf_data.length] = '\0',
+ buf_data.buffer[buf_data.length] = '\0';
printf("%s\n", buf_data.buffer);
free(buf_data.buffer);
}
commit c43a7f0005bd0a5e14a9ca33e10fe2b1413f9e74
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:44:56 2017 +0200
INI: Fix doxygen comment for ini_errobj_create
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/ini/ini_configobj.h b/ini/ini_configobj.h
index 9d5b516..476ecec 100644
--- a/ini/ini_configobj.h
+++ b/ini/ini_configobj.h
@@ -2071,7 +2071,7 @@ struct ini_errobj;
* hold error messages from generators. To add messages to
* the structure use \ref ini_errobj_add_msg.
*
- * @param[out] errobj container for errors.
+ * @param[out] _errobj container for errors.
*
* @return Zero on success, nonzero value in case of error.
*/
commit 64e54a72d7e997c6a8f12ac43ca3c0c27dabe93a
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:37:03 2017 +0200
COLLECTION: Remove unused macros
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/collection/collection.c b/collection/collection.c
index 3d834eb..f7d089b 100644
--- a/collection/collection.c
+++ b/collection/collection.c
@@ -44,11 +44,6 @@
#define EINTR_INTERNAL 10000
-/* Potential subject for management with libtools */
-#define DATE_FORMAT "%c"
-
-#define TIME_ARRAY_SIZE 100
-
/* Magic numbers for hashing */
#if SIZEOF_LONG == 8
#define FNV1a_prime 1099511628211ul
commit b892f7220a692e64774c307c26156276d788087b
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:28:04 2017 +0200
Do not define _GNU_SOURCE
Let autotools to detect gnu features.
Patch also prefer AC_USE_SYSTEM_EXTENSIONS to deprecated AC_GNU_SOURCE
https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Obsolete-Macros.html#index-AC_005fGNU_005fSOURCE-1960
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/configure.ac b/configure.ac
index 048d3ad..1e8e0d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,10 @@ AC_INIT([ding-libs],
[sssd-devel at lists.fedorahosted.org])
AC_CONFIG_SRCDIR([README])
AC_CONFIG_AUX_DIR([build])
-AC_GNU_SOURCE
+
+m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_USE_SYSTEM_EXTENSIONS],
+ [AC_GNU_SOURCE])
AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
AM_PROG_CC_C_O
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
diff --git a/ini/ini_augment.c b/ini/ini_augment.c
index 11b0e3b..af5c0b6 100644
--- a/ini/ini_augment.c
+++ b/ini/ini_augment.c
@@ -21,7 +21,6 @@
along with INI Library. If not, see <http://www.gnu.org/licenses/>.
*/
-#define _GNU_SOURCE /* for vasprintf */
#include "config.h"
#include <errno.h>
#include <stdarg.h>
diff --git a/ini/ini_configmod.c b/ini/ini_configmod.c
index 02a188f..da4175c 100644
--- a/ini/ini_configmod.c
+++ b/ini/ini_configmod.c
@@ -19,12 +19,11 @@
along with INI Library. If not, see <http://www.gnu.org/licenses/>.
*/
-#define _GNU_SOURCE /* for asprintf */
+#include "config.h"
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <inttypes.h>
-#include "config.h"
#include "trace.h"
#include "ref_array.h"
#include "simplebuffer.h"
diff --git a/ini/ini_fileobj.c b/ini/ini_fileobj.c
index 421d22b..d478d93 100644
--- a/ini/ini_fileobj.c
+++ b/ini/ini_fileobj.c
@@ -18,7 +18,6 @@
You should have received a copy of the GNU Lesser General Public License
along with INI Library. If not, see <http://www.gnu.org/licenses/>.
*/
-#define _GNU_SOURCE /* for asprintf */
#include "config.h"
#include <errno.h>
#include <sys/types.h>
commit 6002a75d2d24a69c46651db0bc723feb7d6aae2b
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:14:24 2017 +0200
INI: Fix warning Walloc-size-larger-than
ini/ini_get_value.c: In function ‘get_bin_config_value’:
ini/ini_get_value.c:552:11: warning: argument 1 range
[18446744072635809792, 18446744073709551615] exceeds maximum object size
9223372036854775807 [-Walloc-size-larger-than=]
value = malloc(len / 2);
~~~~~~^~~~~~~~~~~~~~~~~
In file included from ini/ini_get_value.c:27:0:
/usr/include/stdlib.h:424:14: note: in a call to allocation function ‘malloc’ declared here
extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
^~~~~~
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/ini/ini_get_value.c b/ini/ini_get_value.c
index 0afadd0..2441c14 100644
--- a/ini/ini_get_value.c
+++ b/ini/ini_get_value.c
@@ -501,12 +501,12 @@ const char *get_const_string_config_value(struct collection_item *item, int *err
char *get_bin_config_value(struct collection_item *item,
int *length, int *error)
{
- int i;
+ unsigned i;
char *value = NULL;
const char *buff;
int size = 0;
unsigned char hex;
- int len;
+ unsigned len;
const char *str;
TRACE_FLOW_STRING("get_bin_config_value", "Entry");
commit 7db68eb4d8b1955abfefd0676db9329aa6f5f372
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 17:09:06 2017 +0200
DHASH: Suppress gcc7 warning
Such comment is recognized by -Wimplicit-fallthrough=4
dhash/dhash.c: In function ‘hash_iter_next’:
dhash/dhash.c:748:23: warning: this statement may fall through [-Wimplicit-fallthrough=]
state = HI_STATE_2;
~~~~~~^~~~~~~~~~~~
dhash/dhash.c:750:13: note: here
case HI_STATE_2:
^~~~
dhash/dhash.c:756:23: warning: this statement may fall through [-Wimplicit-fallthrough=]
state = HI_STATE_3A;
~~~~~~^~~~~~~~~~~~~
dhash/dhash.c:758:13: note: here
case HI_STATE_3A:
^~~~
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/dhash/dhash.c b/dhash/dhash.c
index 98439e8..6b4b51d 100644
--- a/dhash/dhash.c
+++ b/dhash/dhash.c
@@ -746,6 +746,7 @@ static hash_entry_t *hash_iter_next(struct hash_iter_context_t *iter_arg)
}
iter->j = 0;
state = HI_STATE_2;
+ /* FALLTHROUGH */
case HI_STATE_2:
if (iter->j >= iter->table->segment_size) {
@@ -754,6 +755,7 @@ static hash_entry_t *hash_iter_next(struct hash_iter_context_t *iter_arg)
}
iter->p = iter->s[iter->j];
state = HI_STATE_3A;
+ /* FALLTHROUGH */
case HI_STATE_3A:
if (iter->p == NULL) {
commit 7a95fde3853d260146a5706e53c4750777db281c
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 16:34:56 2017 +0200
INI: Fix memory leaks in unit test test_ini_augment_empty_dir
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/ini/ini_augment_ut_check.c b/ini/ini_augment_ut_check.c
index 36a28ec..f7e3b66 100644
--- a/ini/ini_augment_ut_check.c
+++ b/ini/ini_augment_ut_check.c
@@ -308,6 +308,9 @@ START_TEST(test_ini_augment_empty_dir)
val = ini_get_int32_config_value(vo, 1, 100, NULL);
fail_unless(val == 1, "Expected attribute value not found.\n");
+ ini_free_attribute_list(attrs_list);
+ ini_free_section_list(section_list);
+ ini_config_destroy(result_cfg);
ini_config_destroy(ini_cfg);
ini_config_file_destroy(file_ctx);
remove(empty_dir_path);
commit 5ef9d8106848e2d436a7ba6729bc281f3e1a15b2
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 16:20:13 2017 +0200
INI: Fix usage of buiddir in ini_augment_ut_check
The function getenv does not return dynamically allocated string.
Therefore we cannot call free for value returned from this function.
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
==26075== 1 errors in context 1 of 4:
==26075== Invalid free() / delete / delete[] / realloc()
==26075== at 0x4C30D18: free (vg_replace_malloc.c:530)
==26075== by 0x401E31: test_ini_augment_merge_sections (ini_augment_ut_check.c:224)
==26075== by 0x505A9EB: ??? (in /usr/lib64/libcheck.so.0.0.0)
==26075== by 0x505AEED: srunner_run_tagged (in /usr/lib64/libcheck.so.0.0.0)
==26075== by 0x401223: main (ini_augment_ut_check.c:337)
==26075== Address 0x1fff0006c1 is on thread 1's stack
diff --git a/ini/ini_augment_ut_check.c b/ini/ini_augment_ut_check.c
index ee1162d..36a28ec 100644
--- a/ini/ini_augment_ut_check.c
+++ b/ini/ini_augment_ut_check.c
@@ -76,7 +76,7 @@ START_TEST(test_ini_augment_merge_sections)
"key1 = augment\n"
"key3 = exists\n";
- char *builddir;
+ const char *builddir;
uint32_t flags[3] = { INI_MS_DETECT , INI_MS_DETECT | INI_MS_PRESERVE,
INI_MS_DETECT | INI_MS_OVERWRITE };
@@ -91,7 +91,7 @@ START_TEST(test_ini_augment_merge_sections)
builddir = getenv("builddir");
if (builddir == NULL) {
- builddir = strdup(".");
+ builddir = ".";
}
snprintf(base_path, PATH_MAX, "%s/tmp_augment_base.conf", builddir);
@@ -221,7 +221,6 @@ START_TEST(test_ini_augment_merge_sections)
remove(base_path);
remove(augment_path);
- free(builddir);
}
END_TEST
@@ -238,7 +237,7 @@ START_TEST(test_ini_augment_empty_dir)
struct ini_cfgobj *result_cfg = NULL;
int size;
char empty_dir_path[PATH_MAX] = {0};
- char *builddir;
+ const char *builddir;
int32_t val;
char base_cfg[] =
"[section_one]\n"
@@ -246,7 +245,7 @@ START_TEST(test_ini_augment_empty_dir)
builddir = getenv("builddir");
if (builddir == NULL) {
- builddir = strdup(".");
+ builddir = ".";
}
ret = snprintf(empty_dir_path, PATH_MAX, "%s/tmp_empty_dir", builddir);
commit 522866dd20d6f9ec210ce73d78e7fb939d145ba8
Author: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon Sep 4 16:12:54 2017 +0200
BUILD: Fix linking of ini_augment_ut_check
libref_array was used in the unit test but it was mot linked with
libref_array
CCLD ini_augment_ut_check
/usr/bin/ld: ini/ini_augment_ut_check-ini_augment_ut_check.o:
undefined reference to symbol 'ref_array_destroy@@REF_ARRAY_0.1.1'
.libs/libref_array.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:1287: ini_augment_ut_check] Error 1
Reviewed-by: Michal Židek <mzidek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3179
diff --git a/Makefile.am b/Makefile.am
index 63ff6fe..81e40e1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -367,7 +367,8 @@ ini_configmod_ut_LDADD = libini_config.la libcollection.la \
ini_augment_ut_check_SOURCES = ini/ini_augment_ut_check.c
ini_augment_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS)
-ini_augment_ut_check_LDADD = libini_config.la $(CHECK_LIBS)
+ini_augment_ut_check_LDADD = libini_config.la $(CHECK_LIBS) \
+ libref_array.la
ini_configmod_ut_check_SOURCES = ini/ini_configmod_ut_check.c
ini_configmod_ut_check_CFLAGS = $(AM_CFLAGS) $(CHECK_CFLAGS)
commit 3d10336f7f23faff1de1ee575e819582b9a36d46
Author: Michal Židek <mzidek at redhat.com>
Date: Wed Aug 30 17:18:15 2017 +0200
INI: Add test for long values
Resolves:
https://pagure.io/SSSD/ding-libs/issue/3177
Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3178
diff --git a/ini/ini_parse_ut_check.c b/ini/ini_parse_ut_check.c
index f5a671e..d72157b 100644
--- a/ini/ini_parse_ut_check.c
+++ b/ini/ini_parse_ut_check.c
@@ -235,6 +235,52 @@ START_TEST(test_ini_parse_section_key_conflict)
}
END_TEST
+/* Maybe we should test even bigger values? */
+#define VALUE_LEN 10000
+/* The +100 is space for section name and key name. */
+#define CFGBUF_LEN (VALUE_LEN + 100)
+START_TEST(test_ini_long_value)
+{
+ int ret;
+ struct ini_cfgobj *ini_cfg;
+ struct ini_cfgfile *file_ctx;
+ struct value_obj *vo;
+ char big_val_cfg[CFGBUF_LEN] = {0};
+ char value[VALUE_LEN] = {0};
+ char *value_got;
+
+ /* The value is just a lot of As ending with '\0'*/
+ memset(value, 'A', VALUE_LEN - 1);
+
+ /* Create config file */
+ ret = snprintf(big_val_cfg, CFGBUF_LEN, "[section]\nkey=%s", value);
+
+ ret = ini_config_file_from_mem(big_val_cfg, strlen(big_val_cfg),
+ &file_ctx);
+ fail_unless(ret == EOK, "Failed to load config. Error %d.\n", ret);
+
+ ret = ini_config_create(&ini_cfg);
+ fail_unless(ret == EOK, "Failed to create config. Error %d.\n", ret);
+ ret = ini_config_parse(file_ctx, INI_STOP_ON_ERROR, INI_MV1S_ALLOW, 0,
+ ini_cfg);
+ fail_if(ret != 0, "Failed to parse config. Error %d.\n", ret);
+
+ ret = ini_get_config_valueobj("section", "key", ini_cfg,
+ INI_GET_FIRST_VALUE, &vo);
+ fail_unless(ret == EOK, "ini_get_config_valueobj returned %d\n: %s", ret,
+ strerror(ret));
+
+ value_got = ini_get_string_config_value(vo, &ret);
+ fail_unless(ret == EOK, "ini_get_int_config_value returned %d\n: %s", ret,
+ strerror(ret));
+
+ fail_unless(strcmp(value, value_got) == 0, "Expected and found values differ!\n");
+ free(value_got);
+ ini_config_destroy(ini_cfg);
+ ini_config_file_destroy(file_ctx);
+}
+END_TEST
+
static Suite *ini_parse_suite(void)
{
Suite *s = suite_create("ini_parse_suite");
@@ -242,6 +288,7 @@ static Suite *ini_parse_suite(void)
TCase *tc_parse = tcase_create("ini_parse");
tcase_add_test(tc_parse, test_ini_parse_non_kvp);
tcase_add_test(tc_parse, test_ini_parse_section_key_conflict);
+ tcase_add_test(tc_parse, test_ini_long_value);
suite_add_tcase(s, tc_parse);
commit 7099295e99467fdf66f3e6da86c8e8b972960219
Author: Michal Židek <mzidek at redhat.com>
Date: Wed Aug 30 15:27:23 2017 +0200
INI: Allow longer values then PATH_MAX
The older API used fgets to read the values and the
size of buffer to hold the line was fixed. With the
new API we use getline to get the whole line and this
does not require pre-allocated buffer. The check
for lenght was not necessary here.
Resolves:
https://pagure.io/SSSD/ding-libs/issue/3177
Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3178
diff --git a/ini/ini_parse.c b/ini/ini_parse.c
index 55891ec..8d50725 100644
--- a/ini/ini_parse.c
+++ b/ini/ini_parse.c
@@ -338,31 +338,22 @@ static int parser_read(struct parser_obj *po)
free(buffer);
}
else {
- /* Check length */
- if (len >= BUFFER_SIZE) {
- TRACE_ERROR_STRING("Too long", "");
- action = PARSE_ERROR;
- po->last_error = ERR_LONGDATA;
- free(buffer);
+ /* Trim end line */
+ i = len - 1;
+ while ((i >= 0) &&
+ ((buffer[i] == '\r') ||
+ (buffer[i] == '\n'))) {
+ TRACE_INFO_NUMBER("Offset:", i);
+ TRACE_INFO_NUMBER("Code:", buffer[i]);
+ buffer[i] = '\0';
+ i--;
}
- else {
- /* Trim end line */
- i = len - 1;
- while ((i >= 0) &&
- ((buffer[i] == '\r') ||
- (buffer[i] == '\n'))) {
- TRACE_INFO_NUMBER("Offset:", i);
- TRACE_INFO_NUMBER("Code:", buffer[i]);
- buffer[i] = '\0';
- i--;
- }
- po->last_read = buffer;
- po->last_read_len = i + 1;
- action = PARSE_INSPECT;
- TRACE_INFO_STRING("Line:", po->last_read);
- TRACE_INFO_NUMBER("Linelen:", po->last_read_len);
- }
+ po->last_read = buffer;
+ po->last_read_len = i + 1;
+ action = PARSE_INSPECT;
+ TRACE_INFO_STRING("Line:", po->last_read);
+ TRACE_INFO_NUMBER("Linelen:", po->last_read_len);
}
}
commit 8ad8417d859997f849cf68a166259c2667214fa9
Author: Michal Židek <mzidek at redhat.com>
Date: Tue Aug 29 18:44:53 2017 +0200
INI: do not use readdir_r
readdir_r has some limitations and was deprecated in favor of readdir.
See man 3 readdir (not to confuse with man 2 readdir).
Resolves:
https://pagure.io/SSSD/ding-libs/issue/3175
Merges: https://pagure.io/SSSD/ding-libs/pull-request/3176
Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
diff --git a/ini/ini_augment.c b/ini/ini_augment.c
index b92f030..11b0e3b 100644
--- a/ini/ini_augment.c
+++ b/ini/ini_augment.c
@@ -363,14 +363,11 @@ static int ini_aug_construct_list(char *dirname ,
int error = EOK;
DIR *dir = NULL;
- struct dirent *entry = NULL;
struct dirent *entryp = NULL;
char *snipname = NULL;
char fullname[PATH_MAX + 1] = {0};
struct ref_array *ra_regex = NULL;
bool match = false;
- int len = 0;
- int name_max;
TRACE_FLOW_ENTRY();
@@ -399,55 +396,42 @@ static int ini_aug_construct_list(char *dirname ,
return EOK;
}
- /* Allocate memory for entry (as said in man pages)*/
- name_max = pathconf(dirname, _PC_NAME_MAX);
- if (name_max == -1) /* Limit not defined, or error */
- name_max = 1024; /* Take a guess */
- len = offsetof(struct dirent, d_name) + name_max + 1;
- entry = malloc(len);
- if (entry == NULL) {
- TRACE_ERROR_NUMBER("Failed to allocate memory.", ENOMEM);
- ref_array_destroy(ra_regex);
- closedir(dir);
- return ENOMEM;
- }
-
/* Loop through the directory */
while (true)
{
- error = readdir_r(dir, entry, &entryp);
- if (error) {
+ errno = 0;
+ entryp = readdir(dir);
+ if (entryp == NULL && errno != 0) {
+ error = errno;
TRACE_ERROR_NUMBER("Failed to read directory.", error);
ref_array_destroy(ra_regex);
closedir(dir);
- free(entry);
return error;
}
/* Stop looping if we reached the end */
if (entryp == NULL) break;
- TRACE_INFO_STRING("Processing", entry->d_name);
+ TRACE_INFO_STRING("Processing", entryp->d_name);
/* Always skip current and parent dirs */
- if ((strncmp(entry->d_name,
+ if ((strncmp(entryp->d_name,
INI_CURRENT_DIR,
sizeof(INI_CURRENT_DIR)) == 0) ||
- (strncmp(entry->d_name,
+ (strncmp(entryp->d_name,
INI_PARENT_DIR,
sizeof(INI_PARENT_DIR)) == 0)) continue;
More information about the Pkg-sssd-devel
mailing list