<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";'>
<div class="content">

<p style="color: #777777;">
<a href="https://gitlab.com/support-bot">GitLab Support Bot</a>
<a href="https://gitlab.com/gnutls/gnutls/-/issues/1414#note_1148054059">commented</a>:
</p>
<div class="md" style="color: #303030; word-wrap: break-word;">
<blockquote dir="auto" style="font-size: inherit; color: #525252; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1.5rem; box-shadow: inset 4px 0 0 0 #dbdbdb; border-top-width: 0; border-bottom-width: 0; border-right-width: 0; margin: 0 0 0.5rem;" align="initial">
<p style="color: inherit; line-height: 1.5; margin: 0 0 16px;">New response for issue <a href="https://gitlab.com/gnutls/gnutls/-/issues/1414" data-reference-type="issue" data-original="#1414" data-link="false" data-link-reference="false" data-project="179611" data-issue="116852658" data-project-path="gnutls/gnutls" data-iid="1414" data-issue-type="issue" data-container="body" data-placement="top" title="bug in gnutls_init()" class="gfm gfm-issue" style="margin-top: 0;">#1414</a>:</p>
<p style="color: inherit; line-height: 1.5; margin: 0 0 16px;">Author: Daiki Ueno</p>
<p style="color: inherit; line-height: 1.5; margin: 0;">For applications that target newer C compiler and thus do not care much about portability, I would suggest always NULL initializing those <code style='font-size: 90%; color: #1f1f1f; word-wrap: break-word; background-color: #f0f0f0; border-radius: 4px; margin-top: 0; font-weight: inherit; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 2px 4px;'>gnutls_*_t</code> so it works nicely with <code style='font-size: 90%; color: #1f1f1f; word-wrap: break-word; background-color: #f0f0f0; border-radius: 4px; font-weight: inherit; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 2px 4px;'>__attribute__((cleanup(...)))</code> as in:
<a href="https://gitlab.com/dueno/quic-echo/-/blob/f21fed36f35efc3c8b3665bfbc9dbfc1482edb81/gnutls-glue.c#L268">https://gitlab.com/dueno/quic-echo/-/blob/f21fed36f35efc3c8b3665bfbc9dbfc1482edb81/gnutls-glue.c#L268</a></p>
</blockquote>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">Huh, that used 'gnutls_session_t session = NULL;', and the compiler
was happy with it.  Re-reading gnutls.h, I see that most of our
gnutls_*_t types are typedefs either for enums (no corresponding
*_init function) or as pointers to opaque struct types, as in:</p>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">struct gnutls_session_int;
typedef struct gnutls_session_int *gnutls_session_t;</p>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">and not completely opaque types, where it would have been written:</p>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">typedef gnutls_session_t;</p>
<blockquote dir="auto" style="font-size: inherit; color: #525252; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1.5rem; box-shadow: inset 4px 0 0 0 #dbdbdb; border-top-width: 0; border-bottom-width: 0; border-right-width: 0; margin: 0.5rem 0;" align="initial">
<p style="color: inherit; line-height: 1.5; margin: 0;">That said, the proposed MR seems like a nice tightening.</p>
</blockquote>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">In the MR, I documented zero initialization by calloc() or memset();
but if you are happy guaranteeing that 'gnutls_*_t obj = NULL' is
going to remain a valid compile-time initialization (that is, we can
no longer change the typedefs to be anything other than a pointer to a
type), that's an easy tweak or followup to the MR as currently posted.</p>
<details style="margin-bottom: 0;"><summary style="margin-top: 0;">...</summary>
<p style="color: #303030; margin: 0 0 16px 1rem;">On Tue, Oct 25, 2022 at 05:15:03AM +0000, Daiki Ueno (<a href="https://gitlab.com/dueno" data-reference-type="user" data-user="470892" data-container="body" data-placement="top" class="gfm gfm-project_member js-user-link" title="Daiki Ueno" style="background-color: #cbe2f9; border-radius: 4px; color: #0b5cad; margin-top: 0; padding: 0 2px;">@dueno</a>) wrote:</p>
<p style="color: #303030; margin: 0 0 16px 1rem;">--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org</p>
</details>
</div>


</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/-/issues/1414#note_1148054059">view it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.com">gitlab.com</a>. <a href="https://gitlab.com/-/sent_notifications/59a469ddc3b69c822789e19fae355dd8/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.com/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.com/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.com/gnutls/gnutls/-/issues/1414#note_1148054059"}}</script>


</p>
</div>
</body>
</html>