Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug #42544: Additional Squid acl types #8

Open
wants to merge 1 commit into
base: 4.3-0
Choose a base branch
from

Conversation

olivier-magloire
Copy link

@olivier-magloire olivier-magloire commented Jul 31, 2018

Extend squid.conf by following acl types:

proxy_auth_regex
rep_mime_type
urlpath_regex
dst

https://forge.univention.org/bugzilla/show_bug.cgi?id=42544

Thank you for providing a pull request!

Please make sure you considered the following things

Link to the issue in Bugzilla

https://forge.univention.org/bugzilla/show_bug.cgi?id=

Description of the changes

Please describe the changes with a few sentences.

  • What kind of change does this PR introduce?
    Feature

  • How can we reproduce the issue?
    New ucr variables for univention-squid

  • To which UCS version does the issue apply?
    All

  • Please list relevant screenshots, error messages, logs or tracebacks
    See bugzilla

  • Are there any breaking or API changes?
    No

  • Are there changes in the documentation necessary?
    Yes

  • Are there descriptions for newly introduced UCR variables?
    (same as for the other squid/acl variables)
    This variable defines a user-defined rule for proxy access, e.g. via user-agent, port, or destination domain. This is evaluated with precedence over the normal rules.

Extend squid.conf by following acl types:

proxy_auth_regex
rep_mime_type
urlpath_regex
dst

https://forge.univention.org/bugzilla/show_bug.cgi?id=42544
@CLAassistant
Copy link

CLAassistant commented Jul 31, 2018

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@olivier-magloire
Copy link
Author

Additionally it would be nice if you could sort the parsed acl names in the squid.conf by name and human readable numbers.

Following extract should clarify my request, I cannot implement this myself.

acl useracl_dstdomain_i_4 dstdom_regex -i xxx
acl useracl_urlpath_i_15 urlpath_regex -i xxx
acl useracl_dstdomain_i_8 dstdom_regex -i xxx
acl useracl_urlpath_i_7 urlpath_regex -i xxx
acl useracl_urlpath_i_33 urlpath_regex -i xxx
acl useracl_urlpath_i_10 urlpath_regex -i xxx
acl useracl_urlpath_i_25 urlpath_regex -i xxx
acl useracl_dstdomain_i_5 dstdom_regex -i xxx
acl useracl_urlpath_i_28 urlpath_regex -i xxx
acl useracl_urlpath_i_13 urlpath_regex -i xxx
acl useracl_dstdomain_i_1 dstdom_regex -i xxx

@olivier-magloire
Copy link
Author

when will this be merged?

pmhahn pushed a commit that referenced this pull request Nov 16, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 16, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 16, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 16, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 17, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 20, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Nov 21, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 2, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 6, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 6, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 8, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 13, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 13, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 19, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Dec 25, 2023
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 4, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 11, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 15, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 19, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 24, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 26, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Jan 29, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 2, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 12, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 18, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 20, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 21, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 27, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Feb 28, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 3, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 4, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 5, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 6, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 6, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 7, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 7, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 7, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
pmhahn pushed a commit that referenced this pull request Mar 7, 2024
The new UDL Python API defines modrdn as int instead of the string "1":
(gdb) p *var
$1 = {ob_refcnt = 1000010831, ob_type = 0x7f341f835ae0 <PyLong_Type>}

In UCS 5.0 this was not a problem, as `PyArg_Parse(var, "s", &str1);` worked nevertheless and resulted in:
(gdb) p str1
$2 = 0x7ffef407aea8 "\002"

This seems to have changed in Python 3.11 or earlier and caused:

kernel: [18330.428271] univention-dire[15235]: segfault at 0 ip 00007f23ced86618 sp 00007fff7570ae48 error 4 in libc.so.6[7f23cec45000+155000] likely on CPU 0 (core 0, socket 0)
kernel: [18330.428285] Code: e1 ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 89 f8 62 a1 fd 00 ef c0 25 ff 0f 00 00 3d e0 0f 00 00 0f 87 38 01 00 00 <62> f3 7d 20 3f 07 00 c5 fb 93 c0 85 c0 74 59 f3 0f bc c0 c3 0f 1f

  #1  0x00007f341f0bd7ee in __GI___strdup (s=0x0) at ./string/strdup.c:41
  #2  0x000055b0683cfd20 in module_get_string (module=<optimized out>, name=name@entry=0x55b0683dbf65 "modrdn") at ./src/handlers.c:158
  #3  0x000055b0683d0580 in handler_import (filename=0x7ffc300a2440 "/usr/lib/univention-directory-listener/system/ldap-cache-baa04df67e7af6bb0769f5cb7e72dba9.py") at ./src/handlers.c:239
  #4  0x000055b0683d0d02 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:516
  #5  0x000055b0683d14a0 in handlers_load_path (path=0x55b069fcc7b0 "/usr/lib/univention-directory-listener/system") at ./src/handlers.c:629
  #6  handlers_load_all_paths () at ./src/handlers.c:535
  #7  handlers_init () at ./src/handlers.c:627
  #8  0x000055b0683ce530 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.c:564

The modrdn was now changed into a boolean flag. Prior it was evaluated
similar. the pure presence of it (e.g. "0") caused modrdn to be
evaluated as true.

Bug #56533
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants