{"id":2369,"date":"2025-11-08T02:51:14","date_gmt":"2025-11-08T08:51:14","guid":{"rendered":"https:\/\/embeddedor.com\/blog\/?p=2369"},"modified":"2026-04-14T15:52:01","modified_gmt":"2026-04-14T21:52:01","slug":"presenting-at-open-source-summit-korea-2025","status":"publish","type":"post","link":"https:\/\/embeddedor.com\/blog\/2025\/11\/08\/presenting-at-open-source-summit-korea-2025\/","title":{"rendered":"Presenting at Open Source Summit Korea 2025"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"525\" src=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-700x525.jpeg\" alt=\"\" class=\"wp-image-2370\" srcset=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-700x525.jpeg 700w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-300x225.jpeg 300w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-768x576.jpeg 768w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-800x600.jpeg 800w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500-80x60.jpeg 80w, https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/1762343377500.jpeg 1280w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>First time in South Korea. Three talks in two days. Over 200 minutes of public speaking. Two packed rooms. Made new connections. (My luggage arrived four days after me. &#x1f605;)<br><br>This week was very intense, and I&#8217;ll never forget this first visit to Seoul. I&#8217;m a bit exhausted right now, but really grateful.<br><br>Thanks, Korea! &#x1f64f;&#x1f3fc;&#x1f1f0;&#x1f1f7;&#x2665;&#xfe0f;<\/p>\n\n\n\n<p>See the abstracts and slides from my presentations below.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/embeddedor.com\/blog\/2025\/11\/08\/presenting-at-open-source-summit-korea-2025\/#Enhancing_spatial_safety_Better_array-bounds_checking_in_C_and_Linux\" title=\"Enhancing spatial safety: Better array-bounds checking in C (and Linux)\">Enhancing spatial safety: Better array-bounds checking in C (and Linux)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/embeddedor.com\/blog\/2025\/11\/08\/presenting-at-open-source-summit-korea-2025\/#Upstream_Kernel_Hardening_Progress_on_enabling_-Wflex-array-member-not-at-end\" title=\"Upstream Kernel Hardening: Progress on enabling -Wflex-array-member-not-at-end\">Upstream Kernel Hardening: Progress on enabling -Wflex-array-member-not-at-end<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enhancing_spatial_safety_Better_array-bounds_checking_in_C_and_Linux\"><\/span>Enhancing spatial safety: Better array-bounds checking in C (and Linux)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The C language has historically suffered from a lack of proper bounds-checking on all types of arrays. The Linux Kernel Self-Protection Project has been addressing this issue for several years. In this presentation, we\u2019ll learn about the most recent hardening efforts to resolve the problem of bounds-checking, particularly for fixed-size and flexible arrays.<\/p>\n\n\n\n<p>We\u2019ll explore the different mechanisms being used to harden key APIs like memcpy() against buffer overflows, which includes the use of some interesting built-in compiler functions. We\u2019ll also talk about a couple of recent compiler options like -fstrict-flex-arrays and -Wflex-array-member-not-at-end, as well as the new counted_by attribute introduced in Clang 18 and GCC 15, which helps us gain run-time bounds-checking coverage on flexible arrays.<\/p>\n\n\n\n<p>Overall, we\u2019ll discuss how various challenges have been overcome, and highlight the innovations developed to solve the problem of array bounds-checking in both C and the Linux kernel once and for all.<\/p>\n<\/blockquote>\n\n\n<a href=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/ab-osskr2025.pdf\" class=\"pdfemb-viewer\" style=\"\" data-width=\"max\" data-height=\"max\" data-toolbar=\"bottom\" data-toolbar-fixed=\"off\">ab-osskr2025<\/a>\n\n\n<p><\/p>\n\n\n\n<p>I delivered the above (90-minute) presentation on November 4 and 5. The slides are basically the same for both sessions. <\/p>\n\n\n\n<p>Below is the video of the presentation I gave on Nov 5. They haven&#8217;t uploaded the recording of the presentation on Nov 4, but as soon as it&#8217;s up, I&#8217;ll add it to my <a href=\"https:\/\/embeddedor.com\/blog\/presentations\/\" target=\"_blank\" rel=\"noreferrer noopener\">Presentations<\/a> page. I personally liked that presentation better because the room was packed and people asked a lot of questions and made some comments.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Enhancing Spatial Safety: Better Array-bounds Checking in C (and Linux) - Gustavo A. R. Silva\" width=\"700\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/MFc90AIxLFE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Upstream_Kernel_Hardening_Progress_on_enabling_-Wflex-array-member-not-at-end\"><\/span>Upstream Kernel Hardening: Progress on enabling -Wflex-array-member-not-at-end<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The -Wflex-array-member-not-at-end compiler option was introduced in GCC 14. It warns about flexible-array members in the middle of composite structures. At the time, it revealed around 60,000 warnings in the upstream Linux kernel. While the vast majority of these are duplicates, about 650 are unique and require individual auditing and resolution. These issues fall into various categories and differ in complexity, which adds to the challenge of globally enabling this flag upstream.<\/p>\n\n\n\n<p>In this presentation, we\u2019ll share the progress we\u2019ve made on this work as part of the Linux Kernel Self-Protection Project (KSPP) over the last year. We\u2019ll go over the challenges we\u2019ve encountered, show concrete code examples, and demonstrate how to fix these kinds of problems. We\u2019ll also discuss why enabling this option is important for the kernel, and how we plan to complete this work in the near future.<\/p>\n\n\n\n<p>Whether you\u2019re a seasoned kernel developer or someone looking to start contributing upstream, this presentation will introduce useful helpers and strategies you can use to fix existing code or implement new functionality, and in doing so, help us harden the Linux kernel for the benefit of everyone.<\/p>\n<\/blockquote>\n\n\n<a href=\"https:\/\/embeddedor.com\/blog\/wp-content\/uploads\/2025\/11\/wfamnae-osskr2025.pdf\" class=\"pdfemb-viewer\" style=\"\" data-width=\"max\" data-height=\"max\" data-toolbar=\"bottom\" data-toolbar-fixed=\"off\">wfamnae-osskr2025<\/a>\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Upstream Kernel Hardening: Progress on Enabling -Wflex-array-member-not-at-end - Gustavo A. R. Silva\" width=\"700\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/OFOr91cSyzQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Linux Kernel Self-Protection Project &#x1f6e1;&#x2694;&#xfe0f;&#x1f427;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>First time in South Korea. Three talks in two days. Over 200 minutes of public speaking. Two packed rooms. Made new connections. (My luggage arrived four days after me. &#x1f605;) This week was very intense, and I&#8217;ll never forget this first visit to Seoul. I&#8217;m a bit exhausted right now, but really grateful. Thanks, Korea!&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[31,20,13,9,22,29],"tags":[],"class_list":["post-2369","post","type-post","status-publish","format-standard","hentry","category-wfamnae","category-conferences","category-kernel-self-protection-project","category-linux-kernel-hardening","category-mentoring","category-presentations"],"_links":{"self":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/2369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/comments?post=2369"}],"version-history":[{"count":20,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/2369\/revisions"}],"predecessor-version":[{"id":2408,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/posts\/2369\/revisions\/2408"}],"wp:attachment":[{"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/media?parent=2369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/categories?post=2369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embeddedor.com\/blog\/wp-json\/wp\/v2\/tags?post=2369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}