{"id":1364,"date":"2025-11-27T21:12:11","date_gmt":"2025-11-27T20:12:11","guid":{"rendered":"https:\/\/blog.chrisse.se\/?p=1364"},"modified":"2025-11-27T21:13:07","modified_gmt":"2025-11-27T20:13:07","slug":"ldp-exe-fails-on-me-crash-dump-analyze-and-resolution","status":"publish","type":"post","link":"https:\/\/blog.chrisse.se\/?p=1364","title":{"rendered":"LDP.exe fails on me &#8211; crash dump analyze and resolution"},"content":{"rendered":"\n<p>For some time LDP.exe just crash for me on my Windows 11 laptop, I can connect and bind successfully, but as soon as I want to view an object or tree, ldp.exe just crash.<\/p>\n\n\n\n<p>So I decided to capture and analyze the crash dump<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"797\" src=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-11-1024x797.png\" alt=\"\" class=\"wp-image-1365\" srcset=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-11-1024x797.png 1024w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-11-300x233.png 300w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-11-768x598.png 768w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-11.png 1204w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p> So what is going on here? The function takes the following parameters:  BerEncode(CtrlInfo *ci, PBERVAL pBerVal)<br><\/p>\n\n\n\n<p>CtrlInfo struct holds some info about an LDAP control.<br>pBerVal is just a <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/api\/winldap\/ns-winldap-ldap_berval\">LDAP_BERVAL (winldap.h) &#8211; Win32 apps | Microsoft Learn<\/a><\/p>\n\n\n\n<p>This lead me to check my controls loaded in ldp.exe &#8211; what is that?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"469\" src=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-12-1024x469.png\" alt=\"\" class=\"wp-image-1366\" srcset=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-12-1024x469.png 1024w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-12-300x138.png 300w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-12-768x352.png 768w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-12.png 1416w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Something I&#8217;ve never entered at least, that is for sure? But how did it end up there?<\/p>\n\n\n\n<p>It turned out that if, <strong>&#8220;HKEY_CURRENT_USER\\Software\\Microsoft\\Ldp\\Controls\\ControlCount&#8221;<\/strong> get&#8217;s out of sync and contains a value that&#8217;s above the numbers of controls saved, it adds this kind of garbage data and will cause ldp.exe to crash!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"369\" src=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-13-1024x369.png\" alt=\"\" class=\"wp-image-1367\" srcset=\"https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-13-1024x369.png 1024w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-13-300x108.png 300w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-13-768x277.png 768w, https:\/\/blog.chrisse.se\/wp-content\/uploads\/2025\/11\/image-13.png 1491w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For some time LDP.exe just crash for me on my Windows 11 laptop, I can connect and bind successfully, but as soon as I want to view an object or tree, ldp.exe just crash. So I decided to capture and analyze the crash dump So what is going on here? The function takes the following &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.chrisse.se\/?p=1364\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;LDP.exe fails on me &#8211; crash dump analyze and resolution&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[41],"tags":[43],"class_list":["post-1364","post","type-post","status-publish","format-standard","hentry","category-active-directory","tag-ldp-exe"],"_links":{"self":[{"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/posts\/1364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1364"}],"version-history":[{"count":2,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/posts\/1364\/revisions"}],"predecessor-version":[{"id":1369,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=\/wp\/v2\/posts\/1364\/revisions\/1369"}],"wp:attachment":[{"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.chrisse.se\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}