Friday, September 21, 2018

[389-commits] [389-ds-base] 01/01: Ticket 49954 - On s390x arch retrieved DB page size is stored as size_t rather than uint32_t

This is an automated email from the git hooks/post-receive script.

tbordaz pushed a commit to branch 389-ds-base-1.3.8
in repository 389-ds-base.

commit dc48bfd10549d876e9461e149ea1bd42105521ff
Author: Thierry Bordaz <tbordaz@redhat.com>
Date: Tue Sep 18 11:30:49 2018 +0200

Ticket 49954 - On s390x arch retrieved DB page size is stored as size_t rather than uint32_t

Bug Description:
The page size is retrieved from uint32_t dblayer_page_size.
Later it is stored in a size_t variable with a cast.
Depending on little/big endian the page size can be stored in the upper/lower bits of the 64bits variable.
Later the variable is used to set the page size of a database file using the lower bits (uint32_t) that are zeroed.

Fix Description:
The BDB callback to set the pagesize, expects a a uint32_t.
Make sure the field containing it is uint32_t (instead of size_t) as the page
size is retrieved as a uint32_t as well (dblayer_page_size/BACK_INFO_INDEXPAGESIZE)

https://pagure.io/389-ds-base/issue/49954

Reviewed by: Ludwig Krispen

Platforms tested: F27

Flag Day: no

Doc impact: no
---
ldap/servers/plugins/replication/cl5_api.c | 2 +-
ldap/servers/plugins/replication/cl5_api.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index 89ae995..65801bc 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -1852,7 +1852,7 @@ _cl5AppInit(void)
{
int rc = -1; /* initialize to failure */
DB_ENV *dbEnv = NULL;
- size_t pagesize = 0;
+ uint32_t pagesize = 0;
int openflags = 0;
char *cookie = NULL;
Slapi_Backend *be = slapi_get_first_backend(&cookie);
diff --git a/ldap/servers/plugins/replication/cl5_api.h b/ldap/servers/plugins/replication/cl5_api.h
index 419dc2d..4331fdb 100644
--- a/ldap/servers/plugins/replication/cl5_api.h
+++ b/ldap/servers/plugins/replication/cl5_api.h
@@ -39,7 +39,7 @@
/* changelog configuration structure */
typedef struct cl5dbconfig
{
- size_t pageSize; /* page size in bytes */
+ uint32_t pageSize; /* page size in bytes */
PRInt32 fileMode; /* file mode */
char *encryptionAlgorithm; /* nsslapd-encryptionalgorithm */
char *symmetricKey;

--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
389-commits mailing list -- 389-commits@lists.fedoraproject.org
To unsubscribe send an email to 389-commits-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/389-commits@lists.fedoraproject.org

No comments:

Post a Comment