<!DOCTYPE html> <html lang='en'> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Tree - rpms/dovecot - src.fedoraproject.org</title> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/theme/static/favicon.ico?version=5.14.1"/> <link href="/theme/static/fedora-bootstrap-1.3.0/fedora-bootstrap.min.css?version=5.14.1" type="text/css" rel="stylesheet" /> <link href="/theme/static/fonts/fonts.css?version=5.14.1" rel="stylesheet" type="text/css" /> <link href="/theme/static/fonts/hack_fonts/css/hack-extended.min.css?version=5.14.1" type="text/css" rel="stylesheet" /> <link href="/theme/static/theme.css?version=5.14.1" type="text/css" rel="stylesheet" /> <link type="text/css" rel="stylesheet" nonce="tVkon2YYVluhJr8zARspqeYHx" href="/static/vendor/font-awesome/font-awesome.css?version=5.14.1"/> <link type="text/css" rel="stylesheet" nonce="tVkon2YYVluhJr8zARspqeYHx" href="/static/pagure.css?version=5.14.1"/> <link nonce="tVkon2YYVluhJr8zARspqeYHx" rel="stylesheet" href="/static/vendor/highlight.js/styles/github.css?version=5.14.1"/> <link nonce="tVkon2YYVluhJr8zARspqeYHx" rel="stylesheet" href="/static/vendor/highlightjs-line-numbers/highlightjs-line-numbers.min.css?version=5.14.1"/> <style nonce="tVkon2YYVluhJr8zARspqeYHx"> .hljs { background: #fff; } </style> </head> <body id="home"> <!-- start masthead --> <nav class="navbar navbar-light masthead p-0 navbar-expand"> <div class="container"> <a href="/" class="navbar-brand"> <img height="40" src="/theme/static/pagure-logo.png?version=5.14.1" alt="pagure Logo" id="pagureLogo"/> </a> <ul class="navbar-nav ml-auto"> <li class="nav-item"> <a class="btn btn-primary" href="/login/?next=https://src.fedoraproject.org/rpms/dovecot/blob/rawhide/f/dovecot-2.3.21-noengine.patch">Log In</a> </li> </ul> </div> </nav> <!-- close masthead--> <div class="bodycontent"> <div class="bg-light border border-bottom pt-3"> <div class="container"> <div class="row mb-3"> <div class="col-6"> <div class="row"> <div class="col-auto pr-0"> <h3> <i class="fa fa-archive text-muted"></i></h3> </div> <div class="col-auto pl-2"> <h3 class="mb-0"> <a href="/projects/rpms/%2A">rpms</a> / <a href="/rpms/dovecot"><strong>dovecot</strong></a> </h3> </div> </div> </div> <div class="col-6 text-right"> <div class="btn-group"> <div class="btn-group"> <a href="#" class="btn btn-sm dropdown-toggle btn-outline-primary" data-toggle="dropdown" id="watch-button"> <i class="fa fa-clone fa-fw"></i> <span>Clone</span> </a> <div class="dropdown-menu dropdown-menu-right"> <div class="m-3" id="source-dropdown"> <div> <h5><strong>Source Code</strong></h5> <div class="form-group"> <div class="input-group input-group-sm"> <div class="input-group-prepend"><span class="input-group-text">GIT</span></div> <input class="form-control bg-white select-on-focus" type="text" value="https://src.fedoraproject.org/rpms/dovecot.git" readonly> </div> </div> </div> </div> </div> </div> </div> </div> </div> <ul class="nav nav-tabs nav-small border-bottom-0"> <li class="nav-item mr-2 text-dark"> <a class="nav-link active" href="/rpms/dovecot"> <i class="fa fa-code fa-fw text-muted"></i> <span class="d-none d-md-inline">Source</span> </a> </li> <li class="nav-item mr-2 text-dark"> <a class="nav-link" href="https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&classification=Fedora&product=Fedora&product=Fedora EPEL&component=dovecot"> <i class="fa fa-fw text-muted fa-exclamation-circle"></i> <span class="d-none d-md-inline">Issues </span> <span class="fa fa-external-link"></span> </a> </li> <li class="nav-item mr-2 text-dark"> <a class="nav-link" href="/rpms/dovecot/pull-requests"> <i class="fa fa-fw text-muted fa-arrow-circle-down"></i> <span class="d-none d-md-inline">Pull Requests </span> <span class="badge badge-secondary py-0 d-none d-md-inline"> 0 </span> </a> </li> <li class="nav-item mr-2 text-dark"> <a class="nav-link" href="/rpms/dovecot/stats"> <i class="fa fa-line-chart fa-fw text-muted"></i> <span class="d-none d-md-inline">Stats</span> </a> </li> </ul> </div> </div> <div class="container pt-5 repo-body-container"> <!-- template: file.html --> <div class="row"> <div class="col-2"> <nav class="nav nav-tabs nav-sidetabs flex-column flex-nowrap"> <a class= "nav-link nowrap " href="/rpms/dovecot"> <i class="fa fa-home text-muted fa-fw"></i> <span class="d-none d-md-inline">Overview</span> </a> <a class= "nav-link nowrap active" href="/rpms/dovecot/tree/rawhide"> <i class="fa fa-file-code-o text-muted fa-fw"></i> Files </a> <a class= "nav-link nowrap " href="/rpms/dovecot/commits/rawhide"> <i class="fa fa-list-alt text-muted fa-fw" data-glyph="spreadsheet"></i> Commits </a> <a class= "nav-link nowrap " href="/rpms/dovecot/branches?branchname=rawhide"> <i class="fa fa-random text-muted fa-fw"></i> Branches </a> <a class= "nav-link nowrap " href="/rpms/dovecot/forks"> <i class="fa fa-code-fork text-muted fa-fw"></i> Forks </a> <a class= "nav-link nowrap " href="/rpms/dovecot/releases"> <i class="fa fa-tags text-muted fa-fw"></i> Releases </a> <div class="line-height-1"></div> <h6>Monitoring status:</h6> <div class="btn-group"> <button title="Monitoring status" class="btn btn-sm btn-outline-primary disabled" id="monitoring-button"> <i id="monitoring-icon" class="fa fa-fw fa-eye"></i> <span id="monitoring-label" class="fa fa-circle-o-notch fa-spin fa-1x fa-fw"></span> </button> </div> <div class="line-height-1"></div> <div id="orphan-section" class="pt-3 enforce-text-break"> <div class="line-height-1"></div> </div> <div class="pt-3"> <div class="line-height-1"> <h6>Bugzilla Assignee:</h6> <dl> <dt>Fedora: </dt> <dd id="fedora_assignee_txt"> mhlavink </dd> <dt>EPEL: </dt> <dd id="epel_assignee_txt"> mhlavink </dd> </dl> </div> </div> <div class="modal fade" id="modal_assignee" tabindex="-1" role="dialog" aria-labelledby="Bugzilla assignee" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Bugzilla Assignee</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> <span class="sr-only">Close</span> </button> </div> <form id="change_assignees"> <div class="modal-body"> <label for="fedora_assignee">Fedora</label> <input title="Default assignee for Fedora in bugzilla - Empty input resets to default" class="form-control" name="fedora_assignee" id="fedora_assignee" value="mhlavink"/> <label for="epel_assignee">EPEL</label> <input title="Default assignee for EPEL in bugzilla (if applicable) - Empty input resets to default" class="form-control" name="epel_assignee" id="epel_assignee" value="mhlavink" /> <p class="pt-2"> These two fields allow to specify a different default assignee for ticket opened against this package in bugzilla. Note: The EPEL field is always displayed for packages in the 'rpms' namespace regardless of whether it is used in bugzilla or not. </p> </div> <div class="modal-footer"> <button class="btn btn-secondary" type="button" title="Update bugzilla overrides" id="reset_assignees"> Reset to defaults </button> <button class="btn btn-primary" type="submit" title="Update bugzilla overrides" id="update_assignees"> Update </button> </div> </form> </div> </div> </div> <div class="modal fade" id="modal_orphan" tabindex="-1" role="dialog" aria-labelledby="Orphan this package" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Orphan package</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> <span class="sr-only">Close</span> </button> </div> <div class="modal-body"> <div class="form-group"> <label for="reason_menu">Reason</label> <select id="reason_menu" class="form-control"> <option id="lack_of_time_option_button">Lack of time</option> <option id="do_not_use_it_option_button">Do not use it anymore</option> <option id="unmaintained_option_button">Unmaintained upstream</option> <option id="fails_to_build_option_button">Fails to build from source</option> <option id="not_fixed_option_button">Important bug not fixed</option> <option id="other_option_button">Other</option> </select> </div> <label for="orphan_reason_info">Additional info</label> <input title="Additional info for orphaning reason" class="form-control" name="orphan_reason_info" id="orphan_reason_info" value=""/> </div> <div class="modal-footer"> <button class="btn btn-primary" type="submit" title="Orphan this package" id="orphan_button"> Update </button> </div> </div> </div> </div> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> window.addEventListener('load', function() { set_up_monitoring = function(status){ var _label = "Disabled" if (status === "monitoring") { _label = "Monitoring"; $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else if (status === "monitoring-with-scratch") { _label = "Scratch builds" $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else if (status === "monitoring-all") { _label = "Monitoring all" $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else if (status === "monitoring-all-scratch") { _label = "All - Scratch builds" $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else if (status === "monitoring-stable") { _label = "Monitoring stable" $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else if (status === "monitoring-stable-scratch") { _label = "Stable - Scratch builds" $("#monitoring-icon").attr("class", "fa fa-fw fa-eye") } else { $("#monitoring-icon").attr("class", "fa fa-fw fa-eye-slash") } $("#monitoring-label").text(_label); $("#monitoring-label").removeClass("fa fa-circle-o-notch fa-spin fa-1x fa-fw"); } $.ajax({ url: "/_dg/anitya/rpms/dovecot", type: 'GET', dataType: 'json', success: function(res) { console.log(res); set_up_monitoring(res.monitoring) } }); $("#reset_assignees").on('click', function(){ $('#fedora_assignee').val(''); $('#epel_assignee').val(''); $("#change_assignees").submit(); return false; }); $("#change_assignees").on('submit', function(){ $('html').css('cursor', 'progress'); $('#reset_assignees').attr('disabled', true); $('#update_assignees').attr('disabled', true); $('#update_assignees').text('Updating...'); $.ajax({ url: "/_dg/bzoverrides/rpms/dovecot", type: 'POST', dataType: 'json', data: { 'epel_assignee': $('#epel_assignee').val(), 'fedora_assignee': $('#fedora_assignee').val() }, success: function(res) { $("#fedora_assignee_txt").text(res.fedora_assignee); $("#epel_assignee_txt").text(res.epel_assignee); $('#modal_assignee').modal('hide'); $('#reset_assignees').attr('disabled', false); $('#update_assignees').attr('disabled', false); $('#update_assignees').text('Update'); $('html').css('cursor', 'default'); console.log("Successfully changed the bugzilla assignees"); return false; }, error: function(res) { var msg = ''; if(res.responseJSON.errors){ msg = ': ' + res.responseJSON.errors.join(', '); } alert("Unable to update the bugzilla assignee(s)" + msg); $('html').css('cursor', 'default'); $('#reset_assignees').attr('disabled', false); $('#update_assignees').attr('disabled', false); $('#update_assignees').text('Update'); return false; } }) return false; }); $.ajax({ url: "/_dg/actived/rpms/dovecot", type: 'GET', dataType: 'json', success: function(res) { var _btn = $("#take_orphan_button"); if (!res.active){ _btn.off("click"); _btn.click(function(){ window.open( "https://pagure.io/releng/new_issue?title=" + "Unretire rpms/dovecot" + "&template=package_unretirement"); }); _btn.prop( "title", "Package retired - Open a releng ticket to adopt it" ); _btn.html("Retired"); } _btn.removeClass('disabled'); } }); $("#orphan_button").click(function(){ $("#orphan_button").attr("disabled", true); $.ajax({ url: "/_dg/orphan/rpms/dovecot", type: 'POST', dataType: 'json', data: { 'orphan_reason': $('#reason_menu').val(), 'orphan_reason_info': $('#orphan_reason_info').val() }, success: function(res) { $("#point_of_contact_div").html("Package is currently unmaintained"); $("#orphan_button").attr("disabled", false); $('#modal_orphan').modal('hide'); $('#orphan-section').html(''); }, error: function(res) { if (res.responseJSON.errors) { alert('Unable to orphan the package: ' + res.responseJSON.errors); } else { alert('Unable to orphan the package: ' + res.responseJSON.error); } $("#orphan_button").attr("disabled", false); } }); }); }); </script> </nav> </div> <div class="col-10"> <div class="row mb-1"> <div class="col-sm-6"> <h3> Files </h3> </div> <div class="col-sm-6 text-right"> <div class="btn-group"> <a href="#" class="btn btn-outline-light border-secondary text-dark btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="fa fa-random fa-fw"></span> Branch: <span class="font-weight-bold">rawhide</span> </a> <div class="dropdown-menu dropdown-menu-right"> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f10"> <span class="fa fa-random fa-fw"></span> <span class="">f10</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f11"> <span class="fa fa-random fa-fw"></span> <span class="">f11</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f12"> <span class="fa fa-random fa-fw"></span> <span class="">f12</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f13"> <span class="fa fa-random fa-fw"></span> <span class="">f13</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f14"> <span class="fa fa-random fa-fw"></span> <span class="">f14</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f15"> <span class="fa fa-random fa-fw"></span> <span class="">f15</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f16"> <span class="fa fa-random fa-fw"></span> <span class="">f16</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f17"> <span class="fa fa-random fa-fw"></span> <span class="">f17</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f18"> <span class="fa fa-random fa-fw"></span> <span class="">f18</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f19"> <span class="fa fa-random fa-fw"></span> <span class="">f19</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f20"> <span class="fa fa-random fa-fw"></span> <span class="">f20</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f21"> <span class="fa fa-random fa-fw"></span> <span class="">f21</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f22"> <span class="fa fa-random fa-fw"></span> <span class="">f22</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f23"> <span class="fa fa-random fa-fw"></span> <span class="">f23</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f24"> <span class="fa fa-random fa-fw"></span> <span class="">f24</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f25"> <span class="fa fa-random fa-fw"></span> <span class="">f25</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f26"> <span class="fa fa-random fa-fw"></span> <span class="">f26</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f27"> <span class="fa fa-random fa-fw"></span> <span class="">f27</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f28"> <span class="fa fa-random fa-fw"></span> <span class="">f28</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f29"> <span class="fa fa-random fa-fw"></span> <span class="">f29</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f30"> <span class="fa fa-random fa-fw"></span> <span class="">f30</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f31"> <span class="fa fa-random fa-fw"></span> <span class="">f31</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f32"> <span class="fa fa-random fa-fw"></span> <span class="">f32</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f33"> <span class="fa fa-random fa-fw"></span> <span class="">f33</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f34"> <span class="fa fa-random fa-fw"></span> <span class="">f34</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f35"> <span class="fa fa-random fa-fw"></span> <span class="">f35</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f36"> <span class="fa fa-random fa-fw"></span> <span class="">f36</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f37"> <span class="fa fa-random fa-fw"></span> <span class="">f37</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f38"> <span class="fa fa-random fa-fw"></span> <span class="">f38</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f39"> <span class="fa fa-random fa-fw"></span> <span class="">f39</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f40"> <span class="fa fa-random fa-fw"></span> <span class="">f40</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f41"> <span class="fa fa-random fa-fw"></span> <span class="">f41</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f7"> <span class="fa fa-random fa-fw"></span> <span class="">f7</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f8"> <span class="fa fa-random fa-fw"></span> <span class="">f8</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/f9"> <span class="fa fa-random fa-fw"></span> <span class="">f9</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/main"> <span class="fa fa-random fa-fw"></span> <span class="">main</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/private-145241-branch"> <span class="fa fa-random fa-fw"></span> <span class="">private-145241-branch</span> </a> <a class="dropdown-item pl-1 " href="/rpms/dovecot/tree/private-1_1-branch"> <span class="fa fa-random fa-fw"></span> <span class="">private-1_1-branch</span> </a> <a class="dropdown-item pl-1 active" href="/rpms/dovecot/tree/rawhide"> <span class="fa fa-random fa-fw"></span> <span class="font-weight-bold">rawhide</span> </a> </div> </div> </div> </div> <!-- .card --> <div class="card mb-3"> <div class="card-header"> <ol class="breadcrumb p-0 bg-transparent mb-0"> <li class="breadcrumb-item"> <a href="/rpms/dovecot/tree/rawhide"> <span class="fa fa-random"> </span> rawhide </a> </li> <li class="active breadcrumb-item"> <span class="fa fa-file" data-glyph=""> </span> dovecot-2.3.21-noengine.patch </li> </ol> </div> <div class="card-body p-0"> <div class="bg-light border text-right pr-2 py-1"> <form class="d-inline mx-2" method="POST" name="fork_project" action="/fork_edit/rpms/dovecot/edit/rawhide/f/dovecot-2.3.21-noengine.patch"> <button class="btn btn-sm btn-secondary fork_project_btn"> Fork and Edit </button> </form> <a class="btn btn-secondary btn-sm" href="/rpms/dovecot/blob/rawhide/f/dovecot-2.3.21-noengine.patch" title="View as blob">Blob</a> <a class="btn btn-secondary btn-sm" href="/rpms/dovecot/blame/dovecot-2.3.21-noengine.patch?identifier=rawhide" title="View git blame">Blame</a> <a class="btn btn-secondary btn-sm" href="/rpms/dovecot/history/dovecot-2.3.21-noengine.patch?identifier=rawhide" title="View git log for this file">History</a> <a class="btn btn-secondary btn-sm" href="/rpms/dovecot/raw/rawhide/f/dovecot-2.3.21-noengine.patch" title="View as raw">Raw</a> </div> <pre class="syntaxhighlightblock"><code class="lang-diff">diff -up dovecot-2.3.21/m4/ssl.m4.noengine dovecot-2.3.21/m4/ssl.m4 --- dovecot-2.3.21/m4/ssl.m4.noengine 2024-05-06 17:39:59.362886891 +0200 +++ dovecot-2.3.21/m4/ssl.m4 2024-05-06 17:42:17.945312656 +0200 @@ -233,6 +233,27 @@ AC_DEFUN([DOVECOT_SSL], [ AC_CHECK_LIB(ssl, ECDSA_SIG_set0, [ AC_DEFINE(HAVE_ECDSA_SIG_SET0,, [Build with ECDSA_SIG_set0 support]) ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, OSSL_PROVIDER_try_load, [ + AC_DEFINE(HAVE_OSSL_PROVIDER_try_load,, [Build with OSSL_PROVIDER_try_load support]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, OPENSSL_init_ssl, [ + AC_DEFINE(HAVE_OPENSSL_init_ssl,, [Build with OPENSSL_init_ssl support]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, OPENSSL_cleanup, [ + AC_DEFINE(HAVE_OPENSSL_cleanup,, [OpenSSL supports OPENSSL_cleanup()]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, OPENSSL_thread_stop, [ + AC_DEFINE(HAVE_OPENSSL_thread_stop,, [OpenSSL supports OPENSSL_thread_stop()]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, ERR_remove_thread_state, [ + AC_DEFINE(HAVE_ERR_remove_thread_state,, [OpenSSL supports ERR_remove_thread_state()]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, ERR_remove_state, [ + AC_DEFINE(HAVE_ERR_remove_state,, [OpenSSL supports ERR_remove_state()]) + ],, $SSL_LIBS) + AC_CHECK_LIB(ssl, ENGINE_by_id_DISABLED, [ + AC_DEFINE(HAVE_ENGINE_by_id,, [OpenSSL supports ENGINE_by_id() - !!!EXPLICITELY DISABLED!!! ]) + ],, $SSL_LIBS) AC_CHECK_LIB(ssl, EC_GROUP_order_bits, [ AC_DEFINE(HAVE_EC_GROUP_order_bits,, [Build with EC_GROUP_order_bits support]) ],, $SSL_LIBS) diff --git dovecot-2.3.21/src/lib-dcrypt/dcrypt-openssl.c.noengine dovecot-2.3.21/src/lib-dcrypt/dcrypt-openssl.c index 1cbe352541..239a981251 100644 --- dovecot-2.3.21/src/lib-dcrypt/dcrypt-openssl.c.noengine +++ dovecot-2.3.21/src/lib-dcrypt/dcrypt-openssl.c @@ -20,7 +20,6 @@ #include <openssl/bio.h> #include <openssl/pem.h> #include <openssl/x509.h> -#include <openssl/engine.h> #include <openssl/hmac.h> #include <openssl/objects.h> #include <openssl/bn.h> diff -up dovecot-2.3.21/src/lib-ssl-iostream/dovecot-openssl-common.c.noengine dovecot-2.3.21/src/lib-ssl-iostream/dovecot-openssl-common.c --- dovecot-2.3.21/src/lib-ssl-iostream/dovecot-openssl-common.c.noengine 2023-09-14 15:17:46.000000000 +0200 +++ dovecot-2.3.21/src/lib-ssl-iostream/dovecot-openssl-common.c 2024-05-06 17:39:59.363886901 +0200 @@ -3,13 +3,23 @@ #include "lib.h" #include "randgen.h" #include "dovecot-openssl-common.h" +#include "iostream-openssl.h" #include <openssl/ssl.h> -#include <openssl/engine.h> +#include <openssl/err.h> +#ifdef HAVE_OSSL_PROVIDER_try_load +# include <openssl/provider.h> +#else +# include <openssl/engine.h> +#endif #include <openssl/rand.h> static int openssl_init_refcount = 0; -static ENGINE *dovecot_openssl_engine; +#ifdef HAVE_OSSL_PROVIDER_try_load +static OSSL_PROVIDER *dovecot_openssl_engine = NULL; +#else +static ENGINE *dovecot_openssl_engine = NULL; +#endif #ifdef HAVE_SSL_NEW_MEM_FUNCS static void *dovecot_openssl_malloc(size_t size, const char *u0 ATTR_UNUSED, int u1 ATTR_UNUSED) @@ -17,12 +27,14 @@ static void *dovecot_openssl_malloc(size static void *dovecot_openssl_malloc(size_t size) #endif { + if (size == 0) + return NULL; /* this may be performance critical, so don't use i_malloc() or calloc() */ void *mem = malloc(size); - if (mem == NULL) { + if (unlikely(mem == NULL)) { i_fatal_status(FATAL_OUTOFMEM, - "OpenSSL: malloc(%zu): Out of memory", size); + "OpenSSL: malloc(%zu): Out of memory", size); } return mem; } @@ -33,10 +45,14 @@ static void *dovecot_openssl_realloc(voi static void *dovecot_openssl_realloc(void *ptr, size_t size) #endif { + if (size == 0) { + free(ptr); + return NULL; + } void *mem = realloc(ptr, size); - if (mem == NULL) { + if (unlikely(mem == NULL)) { i_fatal_status(FATAL_OUTOFMEM, - "OpenSSL: realloc(%zu): Out of memory", size); + "OpenSSL: realloc(%zu): Out of memory", size); } return mem; } @@ -63,9 +79,13 @@ void dovecot_openssl_common_global_ref(v /*i_warning("CRYPTO_set_mem_functions() was called too late");*/ } +#ifdef HAVE_OPENSSL_init_ssl + OPENSSL_init_ssl(0, NULL); +#else SSL_library_init(); SSL_load_error_strings(); OpenSSL_add_all_algorithms(); +#endif } bool dovecot_openssl_common_global_unref(void) @@ -76,30 +96,35 @@ bool dovecot_openssl_common_global_unref return TRUE; if (dovecot_openssl_engine != NULL) { +#ifdef HAVE_OSSL_PROVIDER_try_load + OSSL_PROVIDER_unload(dovecot_openssl_engine); +#else ENGINE_finish(dovecot_openssl_engine); +#endif dovecot_openssl_engine = NULL; } +#ifdef HAVE_OPENSSL_cleanup + OPENSSL_cleanup(); +#else /* OBJ_cleanup() is called automatically by EVP_cleanup() in newer versions. Doesn't hurt to call it anyway. */ OBJ_cleanup(); -#ifdef HAVE_SSL_COMP_FREE_COMPRESSION_METHODS +# if !defined(OPENSSL_NO_COMP) SSL_COMP_free_compression_methods(); -#endif +# endif ENGINE_cleanup(); EVP_cleanup(); CRYPTO_cleanup_all_ex_data(); -#ifdef HAVE_OPENSSL_AUTO_THREAD_DEINIT +# ifdef HAVE_OPENSSL_thread_stop /* no cleanup needed */ -#elif defined(HAVE_OPENSSL_ERR_REMOVE_THREAD_STATE) +# elif defined(HAVE_ERR_remove_thread_state) /* This was marked as deprecated in v1.1. */ ERR_remove_thread_state(NULL); -#else +# elif defined(HAVE_ERR_remove_state) /* This was deprecated by ERR_remove_thread_state(NULL) in v1.0.0. */ ERR_remove_state(0); -#endif +# endif ERR_free_strings(); -#ifdef HAVE_OPENSSL_CLEANUP - OPENSSL_cleanup(); #endif return FALSE; } @@ -110,6 +135,7 @@ int dovecot_openssl_common_global_set_en if (dovecot_openssl_engine != NULL) return 1; +#ifdef HAVE_ENGINE_by_id ENGINE_load_builtin_engines(); dovecot_openssl_engine = ENGINE_by_id(engine); if (dovecot_openssl_engine == NULL) { @@ -128,5 +154,15 @@ int dovecot_openssl_common_global_set_en dovecot_openssl_engine = NULL; return -1; } +#elif defined(HAVE_OSSL_PROVIDER_try_load) + if ((dovecot_openssl_engine = OSSL_PROVIDER_try_load(NULL, engine, 1)) == NULL) { + *error_r = t_strdup_printf("Cannot load '%s': %s", engine, + openssl_iostream_error()); + return 0; + } + return 1; +#else + *error_r = t_strdup_printf("Cannot load '%s': No engine/provider support available", engine); +#endif return 1; } diff -up dovecot-2.3.21/src/lib-ssl-iostream/Makefile.am.noengine dovecot-2.3.21/src/lib-ssl-iostream/Makefile.am --- dovecot-2.3.21/src/lib-ssl-iostream/Makefile.am.noengine 2023-09-14 15:17:46.000000000 +0200 +++ dovecot-2.3.21/src/lib-ssl-iostream/Makefile.am 2024-05-06 17:39:59.363886901 +0200 @@ -5,7 +5,8 @@ NOPLUGIN_LDFLAGS = AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/lib-test \ - -DMODULE_DIR=\""$(moduledir)"\" + -DMODULE_DIR=\""$(moduledir)"\" \ + $(SSL_CFLAGS) if BUILD_OPENSSL module_LTLIBRARIES = libssl_iostream_openssl.la </code></pre> </div> </div> <!-- end .card--> </div> </div> <!-- /template: file.html --> </div> </div> <div class="footer pt-4 text-white"> <div class="container"> <div class="d-flex align-items-center"> <div> <div>Powered by <a href="https://pagure.io/pagure" class="notblue">Pagure</a> 5.14.1</div> <div> <a href="https://docs.pagure.org/pagure/usage/index.html" class="notblue">Documentation</a> • <a href="https://pagure.io/pagure/new_issue" class="notblue">File an Issue</a> • <a href="/about">About this Instance</a> • <a href="/ssh_info" class="notblue">SSH Hostkey/Fingerprint</a> </div> </div> <div class="ml-auto text-right"> <div>© Red Hat, Inc. and others.</div> </div> </div> </div> </div> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx" src="/static/vendor/jquery/jquery.min.js?version=5.14.1"></script> <script src="/static/vendor/bootstrap/bootstrap.bundle.min.js?version=5.14.1"></script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> $('[data-toggle="tooltip"]').tooltip({placement : 'bottom'}); $(".cancel_btn").click(function() { history.back(); }); </script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx" src="/static/vendor/lazyload/lazyload.min.js?version=5.14.1"></script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> window.addEventListener("load", function(event) { lazyload(); }); </script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> $("#giturl-toggle").on('click', function(event){ event.stopPropagation(); $("#giturl-more").toggle(); $("#giturl-toggle").hide(); }) $(".fork_project_btn").click(function() { $('#fork_project').submit(); }); $(".select-on-focus").on("focus", function() { $(this).select(); }); </script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx" src="/static/vendor/highlight.js/highlight.pack.js?version=5.14.1"></script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx" src="/static/vendor/highlightjs-line-numbers/highlightjs-line-numbers.min.js?version=5.14.1"></script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx" src="/static/vendor/highlight.js/spec.js?version=5.14.1"></script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> $(document).ready(function() { $('.fork_project_btn').click($("[name=fork_project]").submit); $('pre.syntaxhighlightblock code').each(function(i, block) { hljs.highlightBlock(block); hljs.lineNumbersBlock(block); }); var cls = "highlighted-line"; var lines = location.hash.substr(2).split('-').map(function (x) { return parseInt(x, 10) }); if (! isNaN(lines[0])) { for (var i = lines[lines.length - 1]; i >= lines[0]; i--) { $('#_' + i).parent().parent().addClass(cls); } setTimeout(function(){ $("#_" + lines[0]).get(0).scrollIntoView({behavior: "instant", block: "start", inline: "nearest"}); }, 50); } }); </script> <script type="text/javascript" nonce="tVkon2YYVluhJr8zARspqeYHx"> function updateHighlight() { var cls = "highlighted-line"; $('.' + cls).removeClass(cls) if (location.hash !== '') { var lines = location.hash.substr(2).split('-').map(function (x) { return parseInt(x, 10) }); for (var i = lines[lines.length - 1]; i >= lines[0]; i--) { $('[data-line-number=' + i + ']').closest('tr').addClass(cls); } return lines; } return []; } $(window).on('hashchange', updateHighlight); var selected = []; $("[data-line-number]").click(function (ev) { var line = $(this).attr('data-line-number'); if (ev.shiftKey) { selected = selected.slice(-1).concat(line); } else { selected = [line]; } var hash = '_' + selected[0]; if (selected.length === 2) { hash = '_' + Math.min(selected[0], selected[1]) + '-' + Math.max(selected[0], selected[1]); } window.location.hash = hash; return false; }); </script> </body> </html>