https://bugs.openldap.org/show_bug.cgi?id=9391
Issue ID: 9391 Summary: (entryUUID=foobar) -> seg fault Product: OpenLDAP Version: 2.4.56 Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: --- Component: slapd Assignee: bugs@openldap.org Reporter: michael@stroeder.com Target Milestone: ---
Searching with filter (entryUUID=foobar) crashes slapd for Æ-DIR providers and consumers.
Log message:
slapd: schema_init.c:2943: UUIDNormalize: Assertion `val->bv_len == 16' failed.
Let me know if you need more information to reproduce.
https://bugs.openldap.org/show_bug.cgi?id=9391
Howard Chu hyc@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |TEST Status|UNCONFIRMED |RESOLVED
--- Comment #1 from Howard Chu hyc@openldap.org --- (In reply to Michael Ströder from comment #0)
Searching with filter (entryUUID=foobar) crashes slapd for Æ-DIR providers and consumers.
Log message:
slapd: schema_init.c:2943: UUIDNormalize: Assertion `val->bv_len == 16' failed.
Let me know if you need more information to reproduce.
You're doing something pretty weird, because that section of code is only for denormalizing a normalized UUID, which doesn't happen when processing search filters. (It's only used to convert binary UUIDs from a syncrepl presence list back into plaintext.)
Nevertheless, I've removed the asserts in git master.
https://bugs.openldap.org/show_bug.cgi?id=9391
--- Comment #2 from Michael Ströder michael@stroeder.com --- (In reply to Howard Chu from comment #1)
You're doing something pretty weird, because that section of code is only for denormalizing a normalized UUID, which doesn't happen when processing search filters. (It's only used to convert binary UUIDs from a syncrepl presence list back into plaintext.)
I cannot imagine what's so weird (despite using an invalid assertion value) because rootdn was used for this simple search so all the ACLs in Æ-DIR should not be relevant.
Nevertheless, I've removed the asserts in git master.
Many thanks for your quick fix which behaves correctly in my local tests. The patch also applies cleanly to RE24 branch. I've used this as backport patch for my own packages.
My suggestion is to have this released as 2.4.57 pretty soon.
https://bugs.openldap.org/show_bug.cgi?id=9391
--- Comment #3 from Ondřej Kuzník ondra@mistotebe.net --- On Wed, Nov 11, 2020 at 03:24:53PM +0000, openldap-its@openldap.org wrote:
Searching with filter (entryUUID=foobar) crashes slapd for Æ-DIR providers and consumers.
Log message:
slapd: schema_init.c:2943: UUIDNormalize: Assertion `val->bv_len == 16' failed.
Let me know if you need more information to reproduce.
Hi Michael, I would actually like to know how you managed to trigger this, tried to use accesslog and back-sock, but both of them just print the string filter that's already passed through validation, failing it.
There might be more in schema_init.c and I'd like a way to test those.
Thanks,
https://bugs.openldap.org/show_bug.cgi?id=9391
Quanah Gibson-Mount quanah@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.4.57 Resolution|TEST |FIXED
--- Comment #4 from Quanah Gibson-Mount quanah@openldap.org --- trunk:
Commits: • 9eb94852 by Howard Chu at 2020-11-11T18:25:31+00:00 ITS#9391 remove asserts in UUIDNormalize()
RE24:
Commits: • 36951ced by Howard Chu at 2020-12-02T21:27:10+00:00 ITS#9391 remove asserts in UUIDNormalize()
https://bugs.openldap.org/show_bug.cgi?id=9391
Quanah Gibson-Mount quanah@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |VERIFIED