CINXE.COM

WIP: This commit introduces pcapng awareness into Radamsa. (!58) 路 Merge requests 路 Aki Helin / radamsa 路 GitLab

<!DOCTYPE html> <html class="gl-light ui-neutral with-top-bar with-header " lang="en"> <head prefix="og: http://ogp.me/ns#"> <meta charset="utf-8"> <meta content="IE=edge" http-equiv="X-UA-Compatible"> <meta content="width=device-width, initial-scale=1" name="viewport"> <title>WIP: This commit introduces pcapng awareness into Radamsa. (!58) 路 Merge requests 路 Aki Helin / radamsa 路 GitLab</title> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ window.gon={};gon.math_rendering_limits_enabled=true;gon.features={"glqlIntegration":false,"continueIndentedText":false,"mrExperienceSurvey":false,"mrPipelinesGraphql":false,"notificationsTodosButtons":false,"mrShowReportsImmediately":false,"mergeTrainsSkipTrain":true,"resolveVulnerabilityInMr":true,"mrReportsTab":false};gon.abilities={"resolveVulnerabilityWithAi":false,"measureCommentTemperature":false}; //]]> </script> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ var gl = window.gl || {}; gl.startup_calls = {"/akihe/radamsa/-/merge_requests/58/diffs_metadata.json?diff_head=true\u0026view=inline\u0026w=1":{},"/akihe/radamsa/-/merge_requests/58/discussions.json?per_page=20":{},"/akihe/radamsa/-/merge_requests/58/widget.json":{},"/akihe/radamsa/-/merge_requests/58/cached_widget.json":{},"/akihe/radamsa/-/merge_requests/58.json?serializer=sidebar_extras":{}}; gl.startup_graphql_calls = null; if (gl.startup_calls && window.fetch) { Object.keys(gl.startup_calls).forEach(apiCall => { gl.startup_calls[apiCall] = { fetchCall: fetch(apiCall, { // Emulate XHR for Rails AJAX request checks headers: { 'X-Requested-With': 'XMLHttpRequest' }, // fetch won鈥檛 send cookies in older browsers, unless you set the credentials init option. // We set to `same-origin` which is default value in modern browsers. // See https://github.com/whatwg/fetch/pull/585 for more information. credentials: 'same-origin' }) }; }); } if (gl.startup_graphql_calls && window.fetch) { const headers = {"X-CSRF-Token":"T45mvAlNTIdzA8Llnovs5U5cNx6lxwYRMbD7Wp0kRZ1ShrdpCjkda8_ZMqWC9Bec108rN2923Y8EJut5XfxdRw","x-gitlab-feature-category":"code_review_workflow"}; const url = `https://gitlab.com/api/graphql` const opts = { method: "POST", headers: { "Content-Type": "application/json", ...headers, } }; gl.startup_graphql_calls = gl.startup_graphql_calls.map(call => ({ ...call, fetchCall: fetch(url, { ...opts, credentials: 'same-origin', body: JSON.stringify(call) }) })) } //]]> </script> <link rel="stylesheet" href="/assets/application-61901f0326d988f31e7216b84669e4fa62cd86a0de409e286e83cd639cc996d4.css" /> <link rel="stylesheet" href="/assets/page_bundles/merge_request-c54f44c201beff6e8e2b10fd9f738ddbc0a95445cd3bb32a318929833c0f8821.css" /><link rel="stylesheet" href="/assets/page_bundles/issuable-e25480d2326300d5c49ad31dbd847a53e39fc33a5fd595a961dd7238e411b558.css" /><link rel="stylesheet" href="/assets/page_bundles/notes_shared-30de79203a0836dddd3a4cf7364d63afb16a0f2deb0bbc654b00692872696739.css" /><link rel="stylesheet" href="/assets/page_bundles/design_management-b67fb0c469f6b41e7909fd0a2e77308b626a07ce8d0cb89fde4855f4419925d3.css" /><link rel="stylesheet" href="/assets/page_bundles/merge_requests-b811e14aee311adcd5e3f13457409b2b52b2a4c87cea7190d0679d406b355b68.css" /><link rel="stylesheet" href="/assets/page_bundles/pipelines-aa0e882a15d0bddb8d1419001aa045cd40b0442434ee26210b883d25e503d86d.css" /><link rel="stylesheet" href="/assets/page_bundles/reports-c30ff8da5d467581779c96962f0dfda74e09f1bb59b4f62a2a45979e3001e274.css" /><link rel="stylesheet" href="/assets/page_bundles/ci_status-03a1526d5d59d53e23437e9d6d2187df404745e4de53b9767362223455318ca8.css" /><link rel="stylesheet" href="/assets/page_bundles/labels-3508460b8d6f839e9d60de1f2065fdaf7f057efab04cf71966acef6a86fe9b41.css" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-1e2cba4dda3c7b30dd84924809020c569f1308dea51520fe1dd5d4ce31403195.css" /><link rel="stylesheet" href="/assets/page_bundles/work_items-22a76cdd1fe2ae5431b7ff603f86212acaf81b49c4a932f19e3b3222dc1881ee.css" /> <link rel="stylesheet" href="/assets/application_utilities-58bec0f2dc46133fc9e8548af9854688398e9d7263cc0fd95ec5739f2a069dec.css" /> <link rel="stylesheet" href="/assets/tailwind-5a00dff8ce8fc18c18a3c6b73b419c326b11e7dafe7cb551d38642da788f5e8f.css" /> <link rel="stylesheet" href="/assets/fonts-fae5d3f79948bd85f18b6513a025f863b19636e85b09a1492907eb4b1bb0557b.css" /> <link rel="stylesheet" href="/assets/highlight/themes/white-99cce4f4b362f6840d7134d4129668929fde49c4da11d6ebf17f99768adbd868.css" /> <script src="/assets/webpack/runtime.a56f844f.bundle.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/main.a61010e6.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/tracker.323eafd8.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/analytics.20a07e5c.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ window.snowplowOptions = {"namespace":"gl","hostname":"snowplowprd.trx.gitlab.net","cookieDomain":".gitlab.com","appId":"gitlab","formTracking":true,"linkClickTracking":true} gl = window.gl || {}; gl.snowplowStandardContext = {"schema":"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1","data":{"environment":"production","source":"gitlab-rails","correlation_id":"01JMD5J7SKH3NXVN9VMGESJ2G3","plan":"free","extra":{},"user_id":null,"global_user_id":null,"is_gitlab_team_member":null,"namespace_id":2959677,"project_id":6703375,"feature_enabled_by_namespace_ids":null,"realm":"saas","instance_id":"ea8bf810-1d6f-4a6a-b4fd-93e8cbd8b57f","host_name":"gitlab-webservice-web-65476cd9d5-zh74j","instance_version":"17.9.0","context_generated_at":"2025-02-18T18:36:44.134Z"}} gl.snowplowPseudonymizedPageUrl = "https://gitlab.com/namespace2959677/project6703375/-/merge_requests/58"; gl.maskedDefaultReferrerUrl = null; gl.ga4MeasurementId = 'G-ENFH3X7M5Y'; //]]> </script> <link rel="preload" href="/assets/application_utilities-58bec0f2dc46133fc9e8548af9854688398e9d7263cc0fd95ec5739f2a069dec.css" as="style" type="text/css" nonce="psIo9O2a65FAboCwY9znYA=="> <link rel="preload" href="/assets/application-61901f0326d988f31e7216b84669e4fa62cd86a0de409e286e83cd639cc996d4.css" as="style" type="text/css" nonce="psIo9O2a65FAboCwY9znYA=="> <link rel="preload" href="/assets/highlight/themes/white-99cce4f4b362f6840d7134d4129668929fde49c4da11d6ebf17f99768adbd868.css" as="style" type="text/css" nonce="psIo9O2a65FAboCwY9znYA=="> <link crossorigin="" href="https://snowplowprd.trx.gitlab.net" rel="preconnect"> <link as="font" crossorigin="" href="/assets/gitlab-sans/GitLabSans-1e0a5107ea3bbd4be93e8ad2c503467e43166cd37e4293570b490e0812ede98b.woff2" rel="preload"> <link as="font" crossorigin="" href="/assets/gitlab-sans/GitLabSans-Italic-38eaf1a569a54ab28c58b92a4a8de3afb96b6ebc250cf372003a7b38151848cc.woff2" rel="preload"> <link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-08d2c5e8ff8fd3d2d6ec55bc7713380f8981c35f9d2df14e12b835464d6e8f23.woff2" rel="preload"> <link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-Italic-38e58d8df29485a20c550da1d0111e2c2169f6dcbcf894f2cd3afbdd97bcc588.woff2" rel="preload"> <link rel="preload" href="/assets/fonts-fae5d3f79948bd85f18b6513a025f863b19636e85b09a1492907eb4b1bb0557b.css" as="style" type="text/css" nonce="psIo9O2a65FAboCwY9znYA=="> <script src="/assets/webpack/sentry.be2045a7.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.analytics.dashboards-pages.groups.harbor.repositories-pages.groups.iteration_ca-fae0f519.5b107e61.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.new-pages.import.gitlab_projects.new-pages.import.manifest.new-pages.projects.n-44c6c18e.77d582f4.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.search.show-super_sidebar.3f577741.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/super_sidebar.07831d6d.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.projects-pages.projects.activity-pages.projects.alert_management.details-pages.project-68d77824.79456cb0.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.c-ee481b6b.d8f4e570.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/5.57620128.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/6.39bb6656.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.c-8e2404e8.19feeaf1.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/12.33f4f62b.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/15.5e0a0798.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.dashboard.issues-pages.groups.issues-pages.groups.merge_requests-pages.groups.roadmap.-efcf3b68.e112f1eb.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.dashboard.milestones.show-pages.groups.merge_requests-pages.groups.milestones.edit-pag-530c8423.64faaa37.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.milestones.edit-pages.groups.milestones.new-pages.groups.milestones.show-pages.-9b0d9629.cd532db4.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/25.a3189f51.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.roadmap.show-pages.groups.wikis-pages.groups.wikis.diff-pages.groups.wikis.git_-f86ba45d.f0208b6d.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/28.8cd8c554.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.merge_requests-pages.groups.roadmap.show-pages.groups.settings.repository.show--aa7265c8.0349733c.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.wikis-pages.groups.wikis.diff-pages.groups.wikis.git_access-pages.groups.wikis.-53394378.5a5c8679.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/36.387b120f.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-pages.groups.merge_requests-pages.groups.roadmap.show-pages.projects.incidents.show-pages.pr-f2692764.1111776f.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/commons-mountGroupApprovalSettings-pages.groups.security.compliance_dashboards-pages.groups.security-2dfa282d.ad61ed1f.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <script src="/assets/webpack/pages.projects.merge_requests.show.2c2a936e.chunk.js" defer="defer" nonce="0s6QErlP4RK8RFW0GkWVNw=="></script> <meta content="object" property="og:type"> <meta content="GitLab" property="og:site_name"> <meta content="WIP: This commit introduces pcapng awareness into Radamsa. (!58) 路 Merge requests 路 Aki Helin / radamsa 路 GitLab" property="og:title"> <meta content="Hi Aki, we spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness. Briefly, we wanted Radamsa to mutate PCAPNG files in a way..." property="og:description"> <meta content="https://gitlab.com/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="og:image"> <meta content="64" property="og:image:width"> <meta content="64" property="og:image:height"> <meta content="https://gitlab.com/akihe/radamsa/-/merge_requests/58" property="og:url"> <meta content="summary" property="twitter:card"> <meta content="WIP: This commit introduces pcapng awareness into Radamsa. (!58) 路 Merge requests 路 Aki Helin / radamsa 路 GitLab" property="twitter:title"> <meta content="Hi Aki, we spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness. Briefly, we wanted Radamsa to mutate PCAPNG files in a way..." property="twitter:description"> <meta content="https://gitlab.com/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" property="twitter:image"> <meta property="twitter:label1" content="Author"><meta property="twitter:data1" content="Nozomi Networks"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="NFPJ6t-y9vczgjYI9-mEQf-_zDDZymS8Ko11mP7DPW8pWxg_3ManG49Yxkjrln84ZqzQGRN7vyIfG2W7PhsltQ" /> <meta name="csp-nonce" content="0s6QErlP4RK8RFW0GkWVNw==" /> <meta name="action-cable-url" content="/-/cable" /> <link href="/-/manifest.json" rel="manifest"> <link rel="icon" type="image/png" href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" id="favicon" data-original-href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" /> <link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" /> <link href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml"> <meta content="Hi Aki, we spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness. Briefly, we wanted Radamsa to mutate PCAPNG files in a way..." name="description"> <meta content="#ececef" name="theme-color"> </head> <body class="tab-width-8 gl-browser-ie gl-platform-windows" data-namespace-id="2959677" data-page="projects:merge_requests:show" data-page-type-id="58" data-project="radamsa" data-project-full-path="akihe/radamsa" data-project-id="6703375"> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ gl = window.gl || {}; gl.GfmAutoComplete = gl.GfmAutoComplete || {}; gl.GfmAutoComplete.dataSources = {"members":"/akihe/radamsa/-/autocomplete_sources/members?type=MergeRequest\u0026type_id=58","issues":"/akihe/radamsa/-/autocomplete_sources/issues","mergeRequests":"/akihe/radamsa/-/autocomplete_sources/merge_requests","labels":"/akihe/radamsa/-/autocomplete_sources/labels?type=MergeRequest\u0026type_id=58","milestones":"/akihe/radamsa/-/autocomplete_sources/milestones","commands":"/akihe/radamsa/-/autocomplete_sources/commands?type=MergeRequest\u0026type_id=58","snippets":"/akihe/radamsa/-/autocomplete_sources/snippets","contacts":"/akihe/radamsa/-/autocomplete_sources/contacts?type=MergeRequest\u0026type_id=58","wikis":"/akihe/radamsa/-/autocomplete_sources/wikis"}; //]]> </script> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ gl = window.gl || {}; gl.client = {"isIe":true,"isWindows":true}; //]]> </script> <header class="header-logged-out" data-testid="navbar"> <a class="gl-sr-only gl-accessibility" href="#content-body">Skip to content</a> <div class="container-fluid"> <nav aria-label="Explore GitLab" class="header-logged-out-nav gl-flex gl-gap-3 gl-justify-between"> <div class="gl-flex gl-items-center gl-gap-1"> <span class="gl-sr-only">GitLab</span> <a title="Homepage" id="logo" class="header-logged-out-logo has-tooltip" aria-label="Homepage" data-track-label="main_navigation" data-track-action="click_gitlab_logo_link" data-track-property="navigation_top" href="/"><svg aria-hidden="true" role="img" class="tanuki-logo" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path class="tanuki-shape tanuki" d="m24.507 9.5-.034-.09L21.082.562a.896.896 0 0 0-1.694.091l-2.29 7.01H7.825L5.535.653a.898.898 0 0 0-1.694-.09L.451 9.411.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 2.56 1.935 1.554 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z" fill="#E24329"/> <path class="tanuki-shape right-cheek" d="m24.507 9.5-.034-.09a11.44 11.44 0 0 0-4.56 2.051l-7.447 5.632 4.742 3.584 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5Z" fill="#FC6D26"/> <path class="tanuki-shape chin" d="m7.707 20.677 2.56 1.935 1.555 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935-4.743-3.584-4.755 3.584Z" fill="#FCA326"/> <path class="tanuki-shape left-cheek" d="M5.01 11.461a11.43 11.43 0 0 0-4.56-2.05L.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 4.745-3.584-7.444-5.632Z" fill="#FC6D26"/> </svg> </a></div> <ul class="gl-list-none gl-p-0 gl-m-0 gl-flex gl-gap-3 gl-items-center gl-grow"> <li class="header-logged-out-nav-item header-logged-out-dropdown md:gl-hidden"> <button class="header-logged-out-toggle" data-toggle="dropdown" type="button"> <span class="gl-sr-only"> Menu </span> <svg class="s16" data-testid="hamburger-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#hamburger"></use></svg> </button> <div class="dropdown-menu"> <ul> <li> <a href="https://about.gitlab.com/why-gitlab">Why GitLab </a></li> <li> <a href="https://about.gitlab.com/pricing">Pricing </a></li> <li> <a href="https://about.gitlab.com/sales">Contact Sales </a></li> <li> <a href="/explore">Explore</a> </li> </ul> </div> </li> <li class="header-logged-out-nav-item gl-hidden md:gl-inline-block"> <a href="https://about.gitlab.com/why-gitlab">Why GitLab </a></li> <li class="header-logged-out-nav-item gl-hidden md:gl-inline-block"> <a href="https://about.gitlab.com/pricing">Pricing </a></li> <li class="header-logged-out-nav-item gl-hidden gl-inline-block"> <a href="https://about.gitlab.com/sales">Contact Sales </a></li> <li class="header-logged-out-nav-item gl-hidden md:gl-inline-block"> <a class="" href="/explore">Explore</a> </li> </ul> <ul class="gl-list-none gl-p-0 gl-m-0 gl-flex gl-gap-3 gl-items-center gl-justify-end"> <li class="header-logged-out-nav-item"> <a href="/users/sign_in?redirect_to_referer=yes">Sign in</a> </li> <li class="header-logged-out-nav-item"> <a class="gl-button btn btn-md btn-confirm !gl-inline-flex" href="/users/sign_up"><span class="gl-button-text"> Get free trial </span> </a></li> </ul> </nav> </div> </header> <div class="layout-page page-gutter page-with-super-sidebar"> <aside class="js-super-sidebar super-sidebar super-sidebar-loading" data-command-palette="{&quot;project_files_url&quot;:&quot;/akihe/radamsa/-/files/develop?format=json&quot;,&quot;project_blob_url&quot;:&quot;/akihe/radamsa/-/blob/develop&quot;}" data-force-desktop-expanded-sidebar="" data-is-saas="true" data-root-path="/" data-sidebar="{&quot;whats_new_most_recent_release_items_count&quot;:4,&quot;whats_new_version_digest&quot;:&quot;0dc755729105d759eb626954bd82029a9f94aed1c747983d4f27a0d7ade59e57&quot;,&quot;is_logged_in&quot;:false,&quot;context_switcher_links&quot;:[{&quot;title&quot;:&quot;Explore&quot;,&quot;link&quot;:&quot;/explore&quot;,&quot;icon&quot;:&quot;compass&quot;}],&quot;current_menu_items&quot;:[{&quot;id&quot;:&quot;project_overview&quot;,&quot;title&quot;:&quot;radamsa&quot;,&quot;entity_id&quot;:6703375,&quot;link&quot;:&quot;/akihe/radamsa&quot;,&quot;link_classes&quot;:&quot;shortcuts-project&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;manage_menu&quot;,&quot;title&quot;:&quot;Manage&quot;,&quot;icon&quot;:&quot;users&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/activity&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;activity&quot;,&quot;title&quot;:&quot;Activity&quot;,&quot;link&quot;:&quot;/akihe/radamsa/activity&quot;,&quot;link_classes&quot;:&quot;shortcuts-project-activity&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;members&quot;,&quot;title&quot;:&quot;Members&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/project_members&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;labels&quot;,&quot;title&quot;:&quot;Labels&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/labels&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;plan_menu&quot;,&quot;title&quot;:&quot;Plan&quot;,&quot;icon&quot;:&quot;planning&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/issues&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;project_issue_list&quot;,&quot;title&quot;:&quot;Issues&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/issues&quot;,&quot;pill_count_field&quot;:&quot;openIssuesCount&quot;,&quot;link_classes&quot;:&quot;shortcuts-issues has-sub-items&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;boards&quot;,&quot;title&quot;:&quot;Issue boards&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/boards&quot;,&quot;link_classes&quot;:&quot;shortcuts-issue-boards&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;milestones&quot;,&quot;title&quot;:&quot;Milestones&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/milestones&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;project_wiki&quot;,&quot;title&quot;:&quot;Wiki&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/wikis/home&quot;,&quot;link_classes&quot;:&quot;shortcuts-wiki&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;code_menu&quot;,&quot;title&quot;:&quot;Code&quot;,&quot;icon&quot;:&quot;code&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/merge_requests&quot;,&quot;is_active&quot;:true,&quot;items&quot;:[{&quot;id&quot;:&quot;project_merge_request_list&quot;,&quot;title&quot;:&quot;Merge requests&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/merge_requests&quot;,&quot;pill_count_field&quot;:&quot;openMergeRequestsCount&quot;,&quot;link_classes&quot;:&quot;shortcuts-merge_requests&quot;,&quot;is_active&quot;:true},{&quot;id&quot;:&quot;files&quot;,&quot;title&quot;:&quot;Repository&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/tree/develop&quot;,&quot;link_classes&quot;:&quot;shortcuts-tree&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;branches&quot;,&quot;title&quot;:&quot;Branches&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/branches&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;commits&quot;,&quot;title&quot;:&quot;Commits&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/commits/develop?ref_type=heads&quot;,&quot;link_classes&quot;:&quot;shortcuts-commits&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;tags&quot;,&quot;title&quot;:&quot;Tags&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/tags&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;graphs&quot;,&quot;title&quot;:&quot;Repository graph&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/network/develop?ref_type=heads&quot;,&quot;link_classes&quot;:&quot;shortcuts-network&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;compare&quot;,&quot;title&quot;:&quot;Compare revisions&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/compare?from=develop\u0026to=develop&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;project_snippets&quot;,&quot;title&quot;:&quot;Snippets&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/snippets&quot;,&quot;link_classes&quot;:&quot;shortcuts-snippets&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;build_menu&quot;,&quot;title&quot;:&quot;Build&quot;,&quot;icon&quot;:&quot;rocket&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/pipelines&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;pipelines&quot;,&quot;title&quot;:&quot;Pipelines&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/pipelines&quot;,&quot;link_classes&quot;:&quot;shortcuts-pipelines&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;jobs&quot;,&quot;title&quot;:&quot;Jobs&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/jobs&quot;,&quot;link_classes&quot;:&quot;shortcuts-builds&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;pipeline_schedules&quot;,&quot;title&quot;:&quot;Pipeline schedules&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/pipeline_schedules&quot;,&quot;link_classes&quot;:&quot;shortcuts-builds&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;artifacts&quot;,&quot;title&quot;:&quot;Artifacts&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/artifacts&quot;,&quot;link_classes&quot;:&quot;shortcuts-builds&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;deploy_menu&quot;,&quot;title&quot;:&quot;Deploy&quot;,&quot;icon&quot;:&quot;deployments&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/releases&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;releases&quot;,&quot;title&quot;:&quot;Releases&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/releases&quot;,&quot;link_classes&quot;:&quot;shortcuts-deployments-releases&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;container_registry&quot;,&quot;title&quot;:&quot;Container Registry&quot;,&quot;link&quot;:&quot;/akihe/radamsa/container_registry&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;model_registry&quot;,&quot;title&quot;:&quot;Model registry&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/ml/models&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;operations_menu&quot;,&quot;title&quot;:&quot;Operate&quot;,&quot;icon&quot;:&quot;cloud-pod&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/environments&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;environments&quot;,&quot;title&quot;:&quot;Environments&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/environments&quot;,&quot;link_classes&quot;:&quot;shortcuts-environments&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;monitor_menu&quot;,&quot;title&quot;:&quot;Monitor&quot;,&quot;icon&quot;:&quot;monitor&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/incidents&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;incidents&quot;,&quot;title&quot;:&quot;Incidents&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/incidents&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;service_desk&quot;,&quot;title&quot;:&quot;Service Desk&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/issues/service_desk&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false},{&quot;id&quot;:&quot;analyze_menu&quot;,&quot;title&quot;:&quot;Analyze&quot;,&quot;icon&quot;:&quot;chart&quot;,&quot;avatar_shape&quot;:&quot;rect&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/value_stream_analytics&quot;,&quot;is_active&quot;:false,&quot;items&quot;:[{&quot;id&quot;:&quot;cycle_analytics&quot;,&quot;title&quot;:&quot;Value stream analytics&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/value_stream_analytics&quot;,&quot;link_classes&quot;:&quot;shortcuts-project-cycle-analytics&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;contributors&quot;,&quot;title&quot;:&quot;Contributor analytics&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/graphs/develop?ref_type=heads&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;ci_cd_analytics&quot;,&quot;title&quot;:&quot;CI/CD analytics&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/pipelines/charts&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;repository_analytics&quot;,&quot;title&quot;:&quot;Repository analytics&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/graphs/develop/charts&quot;,&quot;link_classes&quot;:&quot;shortcuts-repository-charts&quot;,&quot;is_active&quot;:false},{&quot;id&quot;:&quot;model_experiments&quot;,&quot;title&quot;:&quot;Model experiments&quot;,&quot;link&quot;:&quot;/akihe/radamsa/-/ml/experiments&quot;,&quot;is_active&quot;:false}],&quot;separated&quot;:false}],&quot;current_context_header&quot;:&quot;Project&quot;,&quot;support_path&quot;:&quot;https://about.gitlab.com/get-help/&quot;,&quot;docs_path&quot;:&quot;/help/docs&quot;,&quot;display_whats_new&quot;:true,&quot;show_version_check&quot;:null,&quot;search&quot;:{&quot;search_path&quot;:&quot;/search&quot;,&quot;issues_path&quot;:&quot;/dashboard/issues&quot;,&quot;mr_path&quot;:&quot;/dashboard/merge_requests&quot;,&quot;autocomplete_path&quot;:&quot;/search/autocomplete&quot;,&quot;settings_path&quot;:&quot;/search/settings&quot;,&quot;search_context&quot;:{&quot;project&quot;:{&quot;id&quot;:6703375,&quot;name&quot;:&quot;radamsa&quot;},&quot;project_metadata&quot;:{&quot;mr_path&quot;:&quot;/akihe/radamsa/-/merge_requests&quot;,&quot;issues_path&quot;:&quot;/akihe/radamsa/-/issues&quot;},&quot;code_search&quot;:false,&quot;scope&quot;:&quot;merge_requests&quot;,&quot;for_snippets&quot;:null}},&quot;panel_type&quot;:&quot;project&quot;,&quot;shortcut_links&quot;:[{&quot;title&quot;:&quot;Snippets&quot;,&quot;href&quot;:&quot;/explore/snippets&quot;,&quot;css_class&quot;:&quot;dashboard-shortcuts-snippets&quot;},{&quot;title&quot;:&quot;Groups&quot;,&quot;href&quot;:&quot;/explore/groups&quot;,&quot;css_class&quot;:&quot;dashboard-shortcuts-groups&quot;},{&quot;title&quot;:&quot;Projects&quot;,&quot;href&quot;:&quot;/explore/projects/starred&quot;,&quot;css_class&quot;:&quot;dashboard-shortcuts-projects&quot;}],&quot;terms&quot;:&quot;/-/users/terms&quot;}"></aside> <div class="content-wrapper"> <div class="broadcast-wrapper"> </div> <div class="alert-wrapper alert-wrapper-top-space gl-flex gl-flex-col gl-gap-3 container-fluid container-limited"> <div class="gl-alert gl-alert-danger gl-alert-not-dismissible" role="alert"> <div class="gl-alert-icon-container"> <svg class="s16 gl-alert-icon gl-alert-icon-no-title" data-testid="error-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#error"></use></svg> </div> <div class="gl-alert-content" role="alert"> <div class="gl-alert-body"> GitLab may not work properly, because you are using an outdated web browser. <br> Please install a <a target="_blank" rel="noopener noreferrer" href="/help/install/requirements.md#supported-web-browsers">supported web browser</a> for a better experience. </div> </div> </div> </div> <div class="top-bar-fixed container-fluid" data-testid="top-bar"> <div class="top-bar-container gl-flex gl-items-center gl-gap-2"> <div class="gl-grow gl-basis-0 gl-flex gl-items-center gl-justify-start gl-gap-3"> <button class="gl-button btn btn-icon btn-md btn-default btn-default-tertiary js-super-sidebar-toggle-expand super-sidebar-toggle -gl-ml-3" aria-controls="super-sidebar" aria-expanded="false" aria-label="Primary navigation sidebar" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="sidebar-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#sidebar"></use></svg> </button> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Aki Helin","item":"https://gitlab.com/akihe"},{"@type":"ListItem","position":2,"name":"radamsa","item":"https://gitlab.com/akihe/radamsa"},{"@type":"ListItem","position":3,"name":"Merge requests","item":"https://gitlab.com/akihe/radamsa/-/merge_requests"},{"@type":"ListItem","position":4,"name":"!58","item":"https://gitlab.com/akihe/radamsa/-/merge_requests/58"}]} </script> <div data-testid="breadcrumb-links" id="js-vue-page-breadcrumbs-wrapper"> <div data-breadcrumbs-json="[{&quot;text&quot;:&quot;Aki Helin&quot;,&quot;href&quot;:&quot;/akihe&quot;,&quot;avatarPath&quot;:null},{&quot;text&quot;:&quot;radamsa&quot;,&quot;href&quot;:&quot;/akihe/radamsa&quot;,&quot;avatarPath&quot;:null},{&quot;text&quot;:&quot;Merge requests&quot;,&quot;href&quot;:&quot;/akihe/radamsa/-/merge_requests&quot;,&quot;avatarPath&quot;:null},{&quot;text&quot;:&quot;!58&quot;,&quot;href&quot;:&quot;/akihe/radamsa/-/merge_requests/58&quot;,&quot;avatarPath&quot;:null}]" id="js-vue-page-breadcrumbs"></div> <div id="js-injected-page-breadcrumbs"></div> </div> </div> <div class="gl-flex-none gl-flex gl-items-center gl-justify-center"> <div id="js-advanced-search-modal"></div> </div> <div class="gl-grow gl-basis-0 gl-flex gl-items-center gl-justify-end"> <div id="js-work-item-feedback"></div> </div> </div> </div> <div class="container-fluid container-limited project-highlight-puc"> <main class="content" id="content-body" itemscope itemtype="http://schema.org/SoftwareSourceCode"> <div class="flash-container flash-container-page sticky" data-testid="flash-container"> <div id="js-global-alerts"></div> </div> <div class="merge-request" data-lock-version="0" data-mr-action="show" data-project-path="/akihe/radamsa" data-url="/akihe/radamsa/-/merge_requests/58.json"> <div class="detail-page-header border-bottom-0 gl-block gl-pt-5 gl-gap-4 sm:!gl-flex is-merge-request"> <div class="detail-page-header-body"> <h1 class="title gl-heading-1 gl-block gl-grow gl-break-anywhere !gl-m-0" data-testid="title-content"> WIP: This commit introduces pcapng awareness into Radamsa. </h1> <div> <button class="gl-button btn btn-icon btn-md btn-default btn-icon gl-float-right gl-block gutter-toggle issuable-gutter-toggle js-sidebar-toggle sm:!gl-hidden" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="chevron-double-lg-left-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-double-lg-left"></use></svg> </button> </div> </div> <div class="detail-page-header-actions gl-self-start is-merge-request js-issuable-actions gl-flex gl-mt-1"> <div class="gl-flex gl-flex-col sm:gl-flex-row gl-gap-3 gl-w-full sm:gl-w-auto gl-mt-2 sm:gl-mt-0"> <div class="sm:gl-ml-3 dropdown gl-dropdown"> <div data-can-merge="false" data-is-fork="true" data-reviewing-docs-path="/help/user/project/merge_requests/merge_request_troubleshooting.md#check-out-merge-requests-locally-through-the-head-ref" data-source-branch="pcapng" data-source-project-default-url="https://gitlab.com/nozomi-networks/radamsa.git" data-source-project-full-path="nozomi-networks/radamsa" data-source-project-path="radamsa" data-target-branch="master" id="js-check-out-modal"></div> <button class="gl-button btn btn-md btn-confirm gl-flex gl-self-start gl-w-full sm:gl-w-auto !gl-pr-3" data-toggle="dropdown" data-testid="mr-code-dropdown" type="button"><span class="gl-button-text gl-inline-flex gl-justify-between gl-w-full"> Code <svg class="s16 gl-icon gl-ml-2 !gl-mr-0" data-testid="chevron-down-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-down"></use></svg> </span> </button><div class="dropdown-menu dropdown-menu-right"> <div class="gl-dropdown-inner"> <div class="gl-dropdown-contents"> <ul> <li class="gl-dropdown-section-header"> <header class="dropdown-header"> Review changes </header> </li> <li class="gl-dropdown-item"> <button class="dropdown-item js-check-out-modal-trigger" type="button"> <div class="gl-dropdown-item-text-wrapper"> Check out branch </div> </button> </li> <li class="gl-dropdown-divider"> <hr class="dropdown-divider"> </li> <li class="gl-dropdown-section-header"> <header class="dropdown-header"> Download </header> </li> <li class="gl-dropdown-item"> <a class="dropdown-item" download="" data-testid="download-email-patches-menu-item" href="/akihe/radamsa/-/merge_requests/58.patch"><div class="gl-dropdown-item-text-wrapper"> Patches </div> </a></li> <li class="gl-dropdown-item"> <a class="dropdown-item" download="" data-testid="download-plain-diff-menu-item" href="/akihe/radamsa/-/merge_requests/58.diff"><div class="gl-dropdown-item-text-wrapper"> Plain diff </div> </a></li> </ul> </div> </div> </div> </div> </div> </div> </div> <div data-data="{&quot;iid&quot;:58,&quot;defaultBranchName&quot;:&quot;develop&quot;,&quot;projectPath&quot;:&quot;akihe/radamsa&quot;,&quot;sourceProjectPath&quot;:&quot;nozomi-networks/radamsa&quot;,&quot;title&quot;:&quot;WIP: This commit introduces pcapng awareness into Radamsa.&quot;,&quot;isFluidLayout&quot;:&quot;&quot;,&quot;blocksMerge&quot;:&quot;false&quot;,&quot;imported&quot;:&quot;false&quot;,&quot;tabs&quot;:[[&quot;show&quot;,&quot;Overview&quot;,&quot;/akihe/radamsa/-/merge_requests/58&quot;,3],[&quot;commits&quot;,&quot;Commits&quot;,&quot;/akihe/radamsa/-/merge_requests/58/commits&quot;,1],[&quot;pipelines&quot;,&quot;Pipelines&quot;,&quot;/akihe/radamsa/-/merge_requests/58/pipelines&quot;,0],[&quot;diffs&quot;,&quot;Changes&quot;,&quot;/akihe/radamsa/-/merge_requests/58/diffs&quot;,&quot;6&quot;]]}" id="js-merge-sticky-header"></div> <div class="merge-request-details issuable-details" data-id="6703375"> <div class="detail-page-description gl-pt-2 gl-pb-4 gl-flex gl-items-baseline gl-flex-wrap gl-text-subtle is-merge-request"> <div class="js-mr-header" data-hidden="false" data-iid="58" data-imported="false" data-project-path="akihe/radamsa" data-state="closed"></div> <a class="author-link gl-font-bold gl-mr-2 js-user-link" data-user-id="2975406" data-username="nozominetworks" data-name="Nozomi Networks" data-testid="author-link" href="/nozominetworks"><span class="author">Nozomi Networks</span></a> requested to merge <a title="nozomi-networks/radamsa:pcapng" class="ref-container gl-inline-block gl-truncate gl-max-w-26 gl-ml-2" href="/nozomi-networks/radamsa/-/tree/pcapng"><span class="gl-align-middle -gl-mr-2 has-tooltip" title="The source project is a fork"><svg class="s12 gl-ml-1 has-tooltip" data-testid="fork-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#fork"></use></svg></span> nozomi-networks/radamsa:pcapng</a> <button class="gl-button btn btn-icon btn-sm btn-default btn-default-tertiary !gl-hidden md:!gl-inline-block gl-mx-1 js-source-branch-copy" title="Copy branch name &lt;kbd class=&#39;flat ml-1&#39; aria-hidden=true&gt;b&lt;/kbd&gt;" aria-keyshortcuts="b" aria-label="Copy branch name" aria-live="polite" data-toggle="tooltip" data-placement="bottom" data-container="body" data-html="true" data-clipboard-text="pcapng" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="copy-to-clipboard-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#copy-to-clipboard"></use></svg> </button> into <a title="master" class="ref-container gl-inline-block gl-truncate gl-max-w-26 gl-ml-2" href="/akihe/radamsa/-/tree/master">master</a> <button class="gl-button btn btn-icon btn-sm btn-default btn-default-tertiary !gl-hidden md:!gl-inline-block gl-mx-1" title="Copy branch name" aria-label="Copy branch name" aria-live="polite" data-toggle="tooltip" data-placement="bottom" data-container="body" data-html="true" data-clipboard-text="master" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="copy-to-clipboard-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#copy-to-clipboard"></use></svg> </button> <time class="js-timeago gl-inline-block" title="Feb 1, 2019 3:11pm" datetime="2019-02-01T15:11:03Z" tabindex="0" aria-label="Feb 1, 2019 3:11pm" data-toggle="tooltip" data-placement="top" data-container="body">Feb 01, 2019</time> </div> <div class="gl-static merge-request-tabs-holder js-tabs-affix"> <div class="merge-request-tabs-container gl-flex gl-justify-between is-merge-request"> <ul class="merge-request-tabs nav-tabs nav nav-links gl-flex gl-flex-nowrap gl-m-0 gl-p-0 gl-w-full lg:gl-w-auto"> <li class="notes-tab active" data-testid="notes-tab"> <a data-action="show" data-target="#notes" data-toggle="tabvue" href="/akihe/radamsa/-/merge_requests/58">Overview <span class="gl-badge badge badge-pill badge-muted js-discussions-count"><span class="gl-badge-content">3</span></span> </a> </li> <li class="commits-tab" data-testid="commits-tab"> <a data-action="commits" data-target="#commits" data-toggle="tabvue" href="/akihe/radamsa/-/merge_requests/58/commits">Commits <span class="gl-badge badge badge-pill badge-muted js-commits-count"><span class="gl-badge-content">1</span></span> </a> </li> <li class="pipelines-tab"> <a data-action="pipelines" data-target="#pipelines" data-toggle="tabvue" href="/akihe/radamsa/-/merge_requests/58/pipelines">Pipelines <span class="gl-badge badge badge-pill badge-muted js-pipelines-mr-count"><span class="gl-badge-content">0</span></span> </a> </li> <li class="diffs-tab js-diffs-tab" data-testid="diffs-tab" id="diffs-tab"> <a data-action="diffs" data-target="#diffs" data-toggle="tabvue" href="/akihe/radamsa/-/merge_requests/58/diffs">Changes <span class="gl-badge badge badge-pill badge-muted js-changes-tab-count" data-gid="gid://gitlab/MergeRequest/23436617"><span class="gl-badge-content">6</span></span> </a> </li> </ul> <div class="gl-flex gl-flex-wrap gl-items-center justify-content-lg-end"> <div data-blocks-merge="false" id="js-vue-discussion-counter"></div> <div class="gl-ml-auto gl-items-center gl-hidden sm:gl-flex lg:gl-hidden gl-ml-3 js-expand-sidebar gl-absolute gl-right-5"> <button class="gl-button btn btn-md btn-default js-sidebar-toggle" type="button"><svg class="s16 gl-icon gl-button-icon " data-testid="chevron-double-lg-left-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-double-lg-left"></use></svg> <span class="gl-button-text"> Expand </span> </button></div> </div> </div> </div> <div class="tab-content" id="diff-notes-app"> <div id="js-diff-file-finder"> <div id="js-code-navigation"></div> </div> <div class="tab-pane notes voting_notes" id="notes" style="display: block"> <div class="merge-request-overview"> <section> <div class="issuable-discussion js-vue-notes-event"> <div class="detail-page-description gl-pb-0"> <div> <div class="description !gl-mt-4 " data-testid="description-content"> <div class="md"> <p data-sourcepos="1:1-1:7" dir="auto">Hi Aki,</p>&#x000A;<p data-sourcepos="3:1-4:104" dir="auto">we spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness.&#x000A;Briefly, we wanted Radamsa to mutate PCAPNG files in a way that guarantees valid PCAPNG files as output.</p>&#x000A;<p data-sourcepos="6:1-6:490" dir="auto">As part of our work at Nozomi Networks, Guglielmo Fachini and I have experimented a bit and finally obtained a working prototype. This MR is thus meant to be a starting point for discussing what we have done so far and what we could do from now on. In particular, we are eager to hear your feedback because, if the work we are doing is of interest to you, we would be glad to improve it and do what's needed in order to eventually merge the feature (or a variant of it) into Radamsa itself.</p>&#x000A;<p data-sourcepos="8:1-8:671" dir="auto">To give some context, a PCAPNG file is just a sequence of blocks. There are several kind of blocks, Ehnanced Packet Block being the most interesting one for us due to the fact that it is generally used to store network packets. A block always has some metadata associated to it (e.g. type, length, capture time, etc) and it can use either the little-endian or big-endian format depending on the machine that created the file. Currently we should be able to parse all PCAPNG files containing metadata in the little-endian format, but in the future we could extend the support to the big-endian format too. For more information you can consult the PCAPNG specification [1].</p>&#x000A;<p data-sourcepos="10:1-10:73" dir="auto">Now, on the technical side, our solution consists mainly of three parts:</p>&#x000A;<ul data-sourcepos="11:1-14:0" dir="auto">&#x000A;<li data-sourcepos="11:1-11:77">a generator that parses PCAPNG files and produces a stream of PCAPNG blocks</li>&#x000A;<li data-sourcepos="12:1-12:220">an instrumentation applied to all mutations that takes care of unpacking and packing blocks before and after mutating them (e.g. extract the payload, mutate, rebuild the block by updating metadata such as payload size)</li>&#x000A;<li data-sourcepos="13:1-14:0">a mutation predicate that determines whether a block has to be mutated or not (e.g. we don't want to mutate PCAPNG blocks containing information about the capture)</li>&#x000A;</ul>&#x000A;<p data-sourcepos="15:1-15:267" dir="auto">This last point is particularly invasive with respect to Radamsa, however it is of fundamental importance in that it prevents Radamsa from going into an infinite loop when blocks that must not be mutated are encountered and multiple unique output files are requested.</p>&#x000A;<p data-sourcepos="17:1-17:111" dir="auto">To test our changes we have used two scripts that you can also run against a directory containing PCAPNG files:</p>&#x000A;<ul data-sourcepos="18:1-26:0" dir="auto">&#x000A;<li data-sourcepos="18:1-21:38">&#x000A;<p data-sourcepos="18:3-19:140">pcapng_identity_test.sh&#x000A;It checks that running Radamsa with the NOP mutation applied at most once produces an output file that is an exact copy of the input file.</p>&#x000A;<p data-sourcepos="21:3-21:38"><code data-sourcepos="21:4-21:37">$ ./pcapng_identity_test.sh pcapng</code></p>&#x000A;</li>&#x000A;<li data-sourcepos="22:1-26:0">&#x000A;<p data-sourcepos="22:3-23:236">pcapng_well_formedness_test.sh&#x000A;It checks that running Radamsa with its default parameters produces N output files that are valid PCAPNG. Specifically, we check that tcpdump is able to parse those files without exiting with a non-zero value, that is, with no errors.</p>&#x000A;<p data-sourcepos="25:3-25:47"><code data-sourcepos="25:4-25:46">$ ./pcapng_well_formedness_test.sh pcapng 3</code></p>&#x000A;</li>&#x000A;</ul>&#x000A;<p data-sourcepos="27:1-27:160" dir="auto">We used both tests extensively on all our internal traffic which, unfortunately, we cannot share. You can find some public traffic on the Wireshark website [2].</p>&#x000A;<p data-sourcepos="29:1-29:311" dir="auto">Our code is probably not very idiomatic and we didn't invest too much time in safety checks (e.g. packing/upacking) since this is a just a proof of concept. If you have any suggestion or if you notice some misunderstanding of Radamsa on our side, please don't hesitate to tell us. We would really appreciate it!</p>&#x000A;<p data-sourcepos="31:1-31:179" dir="auto">To conclude, we were also wondering whether our changes could be made more generic, effectively allowing our work on PCAPNG (and possibly many others) to be just a sort of plugin.</p>&#x000A;<p data-sourcepos="33:1-33:34" dir="auto">Thank you very much for your time!</p>&#x000A;<p data-sourcepos="35:1-35:7" dir="auto">Cheers,</p>&#x000A;<p data-sourcepos="37:1-37:35" dir="auto">Alberto Zaccagni, Guglielmo Fachini</p>&#x000A;<p data-sourcepos="39:1-39:179" dir="auto">[1] <a href="https://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml&amp;modeAsFormat=html/ascii&amp;type=ascii" rel="nofollow noreferrer noopener" target="_blank">https://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml&amp;modeAsFormat=html/ascii&amp;type=ascii</a></p>&#x000A;<p data-sourcepos="41:1-41:45" dir="auto">[2] <a href="https://wiki.wireshark.org/SampleCaptures" rel="nofollow noreferrer noopener" target="_blank">https://wiki.wireshark.org/SampleCaptures</a></p> </div> <textarea class="hidden js-task-list-field" data-value="Hi Aki, we spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness. Briefly, we wanted Radamsa to mutate PCAPNG files in a way that guarantees valid PCAPNG files as output. As part of our work at Nozomi Networks, Guglielmo Fachini and I have experimented a bit and finally obtained a working prototype. This MR is thus meant to be a starting point for discussing what we have done so far and what we could do from now on. In particular, we are eager to hear your feedback because, if the work we are doing is of interest to you, we would be glad to improve it and do what&#39;s needed in order to eventually merge the feature (or a variant of it) into Radamsa itself. To give some context, a PCAPNG file is just a sequence of blocks. There are several kind of blocks, Ehnanced Packet Block being the most interesting one for us due to the fact that it is generally used to store network packets. A block always has some metadata associated to it (e.g. type, length, capture time, etc) and it can use either the little-endian or big-endian format depending on the machine that created the file. Currently we should be able to parse all PCAPNG files containing metadata in the little-endian format, but in the future we could extend the support to the big-endian format too. For more information you can consult the PCAPNG specification [1]. Now, on the technical side, our solution consists mainly of three parts: * a generator that parses PCAPNG files and produces a stream of PCAPNG blocks * an instrumentation applied to all mutations that takes care of unpacking and packing blocks before and after mutating them (e.g. extract the payload, mutate, rebuild the block by updating metadata such as payload size) * a mutation predicate that determines whether a block has to be mutated or not (e.g. we don&#39;t want to mutate PCAPNG blocks containing information about the capture) This last point is particularly invasive with respect to Radamsa, however it is of fundamental importance in that it prevents Radamsa from going into an infinite loop when blocks that must not be mutated are encountered and multiple unique output files are requested. To test our changes we have used two scripts that you can also run against a directory containing PCAPNG files: * pcapng_identity_test.sh It checks that running Radamsa with the NOP mutation applied at most once produces an output file that is an exact copy of the input file. `$ ./pcapng_identity_test.sh pcapng` * pcapng_well_formedness_test.sh It checks that running Radamsa with its default parameters produces N output files that are valid PCAPNG. Specifically, we check that tcpdump is able to parse those files without exiting with a non-zero value, that is, with no errors. `$ ./pcapng_well_formedness_test.sh pcapng 3` We used both tests extensively on all our internal traffic which, unfortunately, we cannot share. You can find some public traffic on the Wireshark website [2]. Our code is probably not very idiomatic and we didn&#39;t invest too much time in safety checks (e.g. packing/upacking) since this is a just a proof of concept. If you have any suggestion or if you notice some misunderstanding of Radamsa on our side, please don&#39;t hesitate to tell us. We would really appreciate it! To conclude, we were also wondering whether our changes could be made more generic, effectively allowing our work on PCAPNG (and possibly many others) to be just a sort of plugin. Thank you very much for your time! Cheers, Alberto Zaccagni, Guglielmo Fachini [1] https://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml&amp;modeAsFormat=html/ascii&amp;type=ascii [2] https://wiki.wireshark.org/SampleCaptures"></textarea> </div> </div> </div> <div class="emoji-block emoji-list-container js-noteable-awards"> <div class="gl-flex gl-flex-wrap gl-justify-between gl-pt-3"> <div data-can-award-emoji="false" data-path="/api/v4/projects/6703375/merge_requests/58/award_emoji" data-show-default-award-emojis="true" id="js-vue-awards-block"></div> </div> </div> <div class="js-verification-alert" data-identity-verification-path="/-/identity_verification" data-identity-verification-required="false"></div> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ window.gl = window.gl || {}; window.gl.mrWidgetData = {"id":23436617,"iid":58,"source_project_full_path":"nozomi-networks/radamsa","target_project_full_path":"akihe/radamsa","can_create_pipeline_in_target_project":false,"email_patches_path":"/akihe/radamsa/-/merge_requests/58.patch","plain_diff_path":"/akihe/radamsa/-/merge_requests/58.diff","merge_request_basic_path":"/akihe/radamsa/-/merge_requests/58.json?serializer=basic","merge_request_widget_path":"/akihe/radamsa/-/merge_requests/58/widget.json","merge_request_cached_widget_path":"/akihe/radamsa/-/merge_requests/58/cached_widget.json","commit_change_content_path":"/akihe/radamsa/-/merge_requests/58/commit_change_content","conflicts_docs_path":"/help/user/project/merge_requests/conflicts.md","reviewing_and_managing_merge_requests_docs_path":"/help/user/project/merge_requests/merge_request_troubleshooting.md#check-out-merge-requests-locally-through-the-head-ref","merge_request_pipelines_docs_path":"/help/ci/pipelines/merge_request_pipelines.md","ci_environments_status_path":"/akihe/radamsa/-/merge_requests/58/ci_environments_status","user_callouts_path":"/-/users/callouts","suggest_pipeline_feature_id":"suggest_pipeline","migrate_jenkins_feature_id":"migrate_from_jenkins_banner","is_dismissed_suggest_pipeline":true,"is_dismissed_jenkins_migration":true,"human_access":null,"new_project_pipeline_path":"/akihe/radamsa/-/pipelines/new","source_project_default_url":"https://gitlab.com/nozomi-networks/radamsa.git","issues_links":{"assign_to_closing":"/akihe/radamsa/-/merge_requests/58/assign_related_issues","assign_to_closing_count":0,"closing":"","closing_count":0,"mentioned_but_not_closing":"","mentioned_count":0},"security_reports_docs_path":"/help/user/application_security/detect/security_scan_results.md#merge-request","enabled_reports":{"sast":false,"container_scanning":false,"dast":false,"dependency_scanning":false,"license_scanning":false,"coverage_fuzzing":false,"secret_detection":false,"api_fuzzing":false},"show_gitpod_button":true,"gitpod_url":"https://gitpod.io/#https://gitlab.com/akihe/radamsa/-/merge_requests/58","gitpod_enabled":false,"require_password_to_approve":false,"merge_request_approvers_available":false,"multiple_approval_rules_available":false,"can_read_vulnerabilities":false,"can_read_vulnerability_feedback":false,"create_vulnerability_feedback_issue_path":null,"create_vulnerability_feedback_merge_request_path":null,"create_vulnerability_feedback_dismissal_path":null,"discover_project_security_path":null,"has_approvals_available":false,"api_approval_settings_path":null,"merge_immediately_docs_path":"/help/ci/pipelines/merge_trains.md#skip-the-merge-train-and-merge-immediately","saml_approval_path":null,"require_saml_auth_to_approve":false} window.gl.mrWidgetData.artifacts_endpoint = '/akihe/radamsa/-/pipelines/:pipeline_artifacts_id/downloadable_artifacts.json'; window.gl.mrWidgetData.artifacts_endpoint_placeholder = ':pipeline_artifacts_id'; window.gl.mrWidgetData.pipeline_etag = '/api/graphql:pipelines/sha/d1dab77087843974081cb1a9bc707348696f0229'; window.gl.mrWidgetData.squash_before_merge_help_path = '/help/user/project/merge_requests/squash_and_merge.md'; window.gl.mrWidgetData.ci_troubleshooting_docs_path = '/help/ci/debugging.md'; window.gl.mrWidgetData.mr_troubleshooting_docs_path = '/help/user/project/merge_requests/reviews/_index.md#troubleshooting'; window.gl.mrWidgetData.pipeline_must_succeed_docs_path = '/help/user/project/merge_requests/merge_when_pipeline_succeeds.md#require-a-successful-pipeline-for-merge'; window.gl.mrWidgetData.code_coverage_check_help_page_path = '/help/ci/testing/code_coverage/_index.md#add-a-coverage-check-approval-rule'; window.gl.mrWidgetData.security_configuration_path = '/akihe/radamsa/-/security/configuration'; window.gl.mrWidgetData.license_compliance_docs_path = '/help/user/compliance/license_scanning_of_cyclonedx_files/_index.md'; window.gl.mrWidgetData.eligible_approvers_docs_path = '/help/user/project/merge_requests/approvals/rules.md#eligible-approvers'; window.gl.mrWidgetData.approvals_help_path = '/help/user/project/merge_requests/approvals/_index.md'; window.gl.mrWidgetData.codequality_help_path = '/help/ci/testing/code_quality.md#code-quality-reports'; window.gl.mrWidgetData.false_positive_doc_url = '/help/user/application_security/vulnerabilities/_index.md'; window.gl.mrWidgetData.can_view_false_positive = 'false'; window.gl.mrWidgetData.user_preferences_gitpod_path = '/-/profile/preferences#user_gitpod_enabled'; window.gl.mrWidgetData.user_profile_enable_gitpod_path = '/-/user_settings/profile?user%5Bgitpod_enabled%5D=true'; window.gl.mrWidgetData.saml_approval_path = window.gl.mrWidgetData.saml_approval_path //]]> </script><h2 class="gl-sr-only" id="merge-request-widgets-heading"> Merge request reports </h2> <div aria-labelledby="merge-request-widgets-heading" class="mr-widget" id="js-vue-mr-widget" role="region"></div> <div data-current-user-data="null" data-endpoint-metadata="/akihe/radamsa/-/merge_requests/58/diffs_metadata.json?diff_head=true&amp;view=inline&amp;w=1" data-help-page-path="/help/user/project/merge_requests/reviews/suggestions.md" data-is-locked="" data-new-comment-template-paths="[{&quot;text&quot;:&quot;Your comment templates&quot;,&quot;href&quot;:&quot;/-/profile/comment_templates&quot;}]" data-noteable-data="{&quot;id&quot;:23436617,&quot;iid&quot;:58,&quot;description&quot;:&quot;Hi Aki,\n\nwe spoke a few months ago about extending Radamsa with PCAPNG fuzzying awareness.\nBriefly, we wanted Radamsa to mutate PCAPNG files in a way that guarantees valid PCAPNG files as output.\n\nAs part of our work at Nozomi Networks, Guglielmo Fachini and I have experimented a bit and finally obtained a working prototype. This MR is thus meant to be a starting point for discussing what we have done so far and what we could do from now on. In particular, we are eager to hear your feedback because, if the work we are doing is of interest to you, we would be glad to improve it and do what&#39;s needed in order to eventually merge the feature (or a variant of it) into Radamsa itself.\n\nTo give some context, a PCAPNG file is just a sequence of blocks. There are several kind of blocks, Ehnanced Packet Block being the most interesting one for us due to the fact that it is generally used to store network packets. A block always has some metadata associated to it (e.g. type, length, capture time, etc) and it can use either the little-endian or big-endian format depending on the machine that created the file. Currently we should be able to parse all PCAPNG files containing metadata in the little-endian format, but in the future we could extend the support to the big-endian format too. For more information you can consult the PCAPNG specification [1].\n\nNow, on the technical side, our solution consists mainly of three parts: \n* a generator that parses PCAPNG files and produces a stream of PCAPNG blocks\n* an instrumentation applied to all mutations that takes care of unpacking and packing blocks before and after mutating them (e.g. extract the payload, mutate, rebuild the block by updating metadata such as payload size)\n* a mutation predicate that determines whether a block has to be mutated or not (e.g. we don&#39;t want to mutate PCAPNG blocks containing information about the capture)\n\nThis last point is particularly invasive with respect to Radamsa, however it is of fundamental importance in that it prevents Radamsa from going into an infinite loop when blocks that must not be mutated are encountered and multiple unique output files are requested.\n\nTo test our changes we have used two scripts that you can also run against a directory containing PCAPNG files:\n* pcapng_identity_test.sh\n It checks that running Radamsa with the NOP mutation applied at most once produces an output file that is an exact copy of the input file.\n \n `$ ./pcapng_identity_test.sh pcapng`\n* pcapng_well_formedness_test.sh\n It checks that running Radamsa with its default parameters produces N output files that are valid PCAPNG. Specifically, we check that tcpdump is able to parse those files without exiting with a non-zero value, that is, with no errors.\n \n `$ ./pcapng_well_formedness_test.sh pcapng 3`\n\nWe used both tests extensively on all our internal traffic which, unfortunately, we cannot share. You can find some public traffic on the Wireshark website [2].\n\nOur code is probably not very idiomatic and we didn&#39;t invest too much time in safety checks (e.g. packing/upacking) since this is a just a proof of concept. If you have any suggestion or if you notice some misunderstanding of Radamsa on our side, please don&#39;t hesitate to tell us. We would really appreciate it!\n\nTo conclude, we were also wondering whether our changes could be made more generic, effectively allowing our work on PCAPNG (and possibly many others) to be just a sort of plugin.\n\nThank you very much for your time!\n\nCheers,\n\nAlberto Zaccagni, Guglielmo Fachini\n\n[1] https://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml\u0026modeAsFormat=html/ascii\u0026type=ascii\n\n[2] https://wiki.wireshark.org/SampleCaptures&quot;,&quot;title&quot;:&quot;WIP: This commit introduces pcapng awareness into Radamsa.&quot;,&quot;merge_params&quot;:{&quot;force_remove_source_branch&quot;:&quot;0&quot;},&quot;state&quot;:&quot;closed&quot;,&quot;source_branch&quot;:&quot;pcapng&quot;,&quot;target_branch&quot;:&quot;master&quot;,&quot;source_branch_path&quot;:&quot;/nozomi-networks/radamsa/-/tree/pcapng&quot;,&quot;target_branch_path&quot;:&quot;/akihe/radamsa/-/tree/master&quot;,&quot;diff_head_sha&quot;:&quot;d1dab77087843974081cb1a9bc707348696f0229&quot;,&quot;create_note_path&quot;:&quot;/akihe/radamsa/notes?target_id=23436617\u0026target_type=merge_request&quot;,&quot;preview_note_path&quot;:&quot;/akihe/radamsa/-/preview_markdown?target_id=58\u0026target_type=MergeRequest&quot;,&quot;can_receive_suggestion&quot;:true,&quot;create_issue_to_resolve_discussions_path&quot;:null,&quot;new_blob_path&quot;:null,&quot;current_user&quot;:{&quot;can_create_note&quot;:false,&quot;can_update&quot;:false,&quot;can_create_confidential_note&quot;:false},&quot;is_project_archived&quot;:false,&quot;project_id&quot;:6703375,&quot;require_password_to_approve&quot;:false}" data-noteable-type="MergeRequest" data-notes-data="{&quot;noteableType&quot;:&quot;merge_request&quot;,&quot;noteableId&quot;:23436617,&quot;projectId&quot;:6703375,&quot;groupId&quot;:null,&quot;discussionsPath&quot;:&quot;/akihe/radamsa/-/merge_requests/58/discussions.json&quot;,&quot;registerPath&quot;:&quot;/users/sign_up?redirect_to_referer=yes&quot;,&quot;newSessionPath&quot;:&quot;/users/sign_in?redirect_to_referer=yes&quot;,&quot;markdownDocsPath&quot;:&quot;/help/user/markdown.md&quot;,&quot;quickActionsDocsPath&quot;:&quot;/help/user/project/quick_actions.md&quot;,&quot;closePath&quot;:&quot;/akihe/radamsa/-/merge_requests/58?merge_request%5Bstate_event%5D=close&quot;,&quot;reopenPath&quot;:&quot;/akihe/radamsa/-/merge_requests/58?merge_request%5Bstate_event%5D=reopen&quot;,&quot;notesPath&quot;:&quot;/akihe/radamsa/noteable/merge_request/23436617/notes&quot;,&quot;prerenderedNotesCount&quot;:4,&quot;lastFetchedAt&quot;:1739903804000000,&quot;notesFilter&quot;:null,&quot;draftsPath&quot;:&quot;/akihe/radamsa/-/merge_requests/58/drafts&quot;,&quot;draftsPublishPath&quot;:&quot;/akihe/radamsa/-/merge_requests/58/drafts/publish&quot;,&quot;draftsDiscardPath&quot;:&quot;/akihe/radamsa/-/merge_requests/58/drafts/discard&quot;}" data-notes-filters="{&quot;Show all activity&quot;:0,&quot;Show comments only&quot;:1,&quot;Show history only&quot;:2}" data-report-abuse-path="/-/abuse_reports/add_category" data-target-type="merge_request" id="js-vue-mr-discussions"></div> </div> </section> <aside aria-label="merge_request" aria-live="polite" class="right-sidebar js-right-sidebar js-issuable-sidebar right-sidebar-expanded right-sidebar-merge-requests right-sidebar-collapsed" data-always-show-toggle data-auto-collapse data-issuable-type="merge_request"> <div class="issuable-sidebar is-merge-request"> <div class="issuable-sidebar-header md:gl-flex lg:!gl-hidden gl-justify-end"> <button class="gl-button btn btn-md btn-default gutter-toggle gl-float-right js-sidebar-toggle has-tooltip !gl-border-0" type="button" aria-label="Toggle sidebar" title="Collapse sidebar" data-container="body" data-placement="left" data-boundary="viewport" type="button"><span class="gl-button-text"> <span class="js-sidebar-toggle-container gl-button-text" data-is-expanded="true"><svg class="s16 js-sidebar-expand hidden" data-testid="chevron-double-lg-left-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-double-lg-left"></use></svg><svg class="s16 js-sidebar-collapse " data-testid="chevron-double-lg-right-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-double-lg-right"></use></svg></span> </span> </button></div> <form class="issuable-context-form inline-update js-issuable-update !gl-pr-2" action="/akihe/radamsa/-/merge_requests/58.json" accept-charset="UTF-8" data-remote="true" method="post"><div class="block assignee gl-mt-3" data-testid="assignee-block-container"> <div class="js-sidebar-assignees-root" data-field="merge_request" data-max-assignees="1"> <div class="title hide-collapsed gl-flex gl-justify-between gl-items-center !gl-mb-0"> <span class="gl-font-bold">Assignee</span> <span class="gl-spinner-container" role="status"><span aria-hidden class="gl-spinner gl-spinner-sm gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </span> </div> </div> </div> <div class="block reviewer" data-testid="reviewers-block-container"> <div class="js-sidebar-reviewers-root" data-field="merge_request"> <div class="title hide-collapsed gl-flex gl-justify-between gl-items-center !gl-mb-0"> <span class="gl-font-bold">Reviewers</span> <span class="gl-spinner-container" role="status"><span aria-hidden class="gl-spinner gl-spinner-sm gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </span> </div> </div> <div class="selectbox hide-collapsed"> <div class="js-reviewers-inputs"></div> <div class="dropdown "><button class="dropdown-menu-toggle js-reviewer-search js-author-search js-multiselect js-save-user-data" type="button" data-current-user="true" data-iid="58" data-issuable-type="merge_request" data-project-id="6703375" data-author-id="2975406" data-field-name="merge_request[reviewer_ids][]" data-issue-update="/akihe/radamsa/-/merge_requests/58.json" data-ability-name="merge_request" data-null-user="true" data-display="static" data-multi-select="true" data-dropdown-title="Request review from" data-dropdown-header="Reviewer" data-suggested-reviewers-help-path="/help/user/project/merge_requests/reviews/_index.md#request-a-review" data-suggested-reviewers-header="Suggestion(s)" data-all-members-header="All project members" data-show-suggested="true" data-max-select="1" data-toggle="dropdown"><span class="dropdown-toggle-text ">Request review from</span><svg class="s16 dropdown-menu-toggle-icon" data-testid="chevron-down-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#chevron-down"></use></svg></button><div class="dropdown-menu dropdown-select dropdown-menu-user dropdown-menu-selectable dropdown-menu-author"><div class="dropdown-title gl-flex"><span class="gl-ml-auto">Request review from</span><button class="dropdown-title-button dropdown-menu-close gl-ml-auto" aria-label="Close" type="button"><svg class="s16 dropdown-menu-close-icon" data-testid="close-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#close"></use></svg></button></div><div class="dropdown-input"><input type="search" data-testid="dropdown-input-field" class="dropdown-input-field" placeholder="Search users" autocomplete="off" /><svg class="s16 dropdown-input-search" data-testid="search-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#search"></use></svg><svg class="s16 dropdown-input-clear js-dropdown-input-clear" data-testid="close-icon"><use href="/assets/icons-aa2c8ddf99d22b77153ca2bb092a23889c12c597fc8b8de94b0f730eb53513f6.svg#close"></use></svg></div><div data-testid="dropdown-list-content" class="dropdown-content "></div><div class="dropdown-loading"><div class="gl-spinner-container gl-mt-7" role="status"><span aria-hidden class="gl-spinner gl-spinner-md gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </div></div></div></div> </div> </div> <div class="js-sidebar-labels-widget-root" data-allow-label-create="" data-allow-scoped-labels="false" data-can-edit="" data-iid="58" data-issuable-type="merge_request" data-labels-fetch-path="/akihe/radamsa/-/labels.json?include_ancestor_groups=true" data-labels-manage-path="/akihe/radamsa/-/labels" data-project-issues-path="/akihe/radamsa/-/merge_requests" data-project-path="akihe/radamsa" data-selected-labels="[]"></div> <div class="block milestone" data-testid="sidebar-milestones"> <div class="js-sidebar-milestone-widget-root" data-can-edit="" data-issue-iid="58" data-project-path="akihe/radamsa"></div> </div> <div class="js-sidebar-time-tracking-root block"> <!-- / Fallback while content is loading --> <div class="title hide-collapsed gl-flex gl-justify-between gl-items-center !gl-mb-0"> <span class="gl-font-bold">Time tracking</span> <span class="gl-spinner-container" role="status"><span aria-hidden class="gl-spinner gl-spinner-sm gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </span> </div> </div> <div class="js-sidebar-participants-widget-root"></div> </form><script class="js-sidebar-options" type="application/json">{"endpoint":"/akihe/radamsa/-/merge_requests/58.json?serializer=sidebar_extras","toggleSubscriptionEndpoint":"/akihe/radamsa/-/merge_requests/58/toggle_subscription","moveIssueEndpoint":"/akihe/radamsa/-/issues/58/move","projectsAutocompleteEndpoint":"/-/autocomplete/projects?project_id=6703375","editable":"","currentUser":null,"rootPath":"/","fullPath":"akihe/radamsa","iid":58,"id":23436617,"severity":null,"timeTrackingLimitToHours":true,"canCreateTimelogs":null,"createNoteEmail":null,"issuableType":"merge_request","directlyInviteMembers":"false","weightOptions":["None","Any",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"weightNoneValue":"None","multipleApprovalRulesAvailable":false}</script> </div> </aside> </div> </div> <div class="tab-pane commits" id="commits" style=""> </div> <div class="tab-pane pipelines" id="pipelines" style=""> <div data-artifacts-endpoint="/akihe/radamsa/-/pipelines/:pipeline_artifacts_id/downloadable_artifacts.json" data-artifacts-endpoint-placeholder=":pipeline_artifacts_id" data-disable-initialization data-empty-state-svg-path="/assets/illustrations/empty-state/empty-pipeline-md-bf6f4296b1bdb1dae0fdd02ec5177a7c24f0e18f531569cf50d06015b3984d96.svg" data-endpoint="/akihe/radamsa/-/merge_requests/58/pipelines" data-error-state-svg-path="/assets/illustrations/empty-state/empty-job-failed-md-b4806d6a3ab9210aa16b8d78e1c3624e4921fb8f6eaf18ca82398565c84ce7a4.svg" data-full-path="akihe/radamsa" data-graphql-path="/api/graphql" data-project-id="6703375" id="commit-pipeline-table-view"></div> </div> <div class="tab-pane diffs" data-changes-empty-state-illustration="/assets/illustrations/empty-state/empty-commit-md-4a0bda76f4e3ae630bb48b58a8c2a0c914cc78809b5dc51f206744496bc0f70a.svg" data-current-user-data="null" data-default-suggestion-commit-message="Apply %{suggestions_count} suggestion(s) to %{files_count} file(s) %{co_authored_by}" data-dismiss-endpoint="/-/users/callouts" data-endpoint="/akihe/radamsa/-/merge_requests/58/diffs.json?diff_head=true" data-endpoint-batch="/akihe/radamsa/-/merge_requests/58/diffs_batch.json?diff_head=true" data-endpoint-diff-for-path="/akihe/radamsa/-/merge_requests/58/diff_for_path.json" data-endpoint-metadata="/akihe/radamsa/-/merge_requests/58/diffs_metadata.json?diff_head=true&amp;view=inline&amp;w=1" data-file-by-file-default="" data-help-page-path="/help/user/project/merge_requests/reviews/suggestions.md" data-iid="58" data-is-fluid-layout="" data-is-forked="false" data-new-comment-template-paths="[{&quot;text&quot;:&quot;Your comment templates&quot;,&quot;href&quot;:&quot;/-/profile/comment_templates&quot;}]" data-per-page="5" data-project-path="/akihe/radamsa" data-sast-report-available="false" data-show-suggest-popover="true" data-show-whitespace-default="true" data-source-project-default-url="https://gitlab.com/nozomi-networks/radamsa.git" data-source-project-full-path="nozomi-networks/radamsa" data-update-current-user-path="/api/v4/user/preferences" id="js-diffs-app" style=""> </div> </div> <div class="mr-loading-status"> <div class="loading hide"> <div class="gl-spinner-container" role="status"><span aria-hidden class="gl-spinner gl-spinner-lg gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> </div> </div> </div> </div> </div> <div data-can-summarize="false" data-new-comment-template-paths="[{&quot;text&quot;:&quot;Your comment templates&quot;,&quot;href&quot;:&quot;/-/profile/comment_templates&quot;}]" id="js-review-bar"></div> <div id="js-reviewer-drawer-portal"></div> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ window.gl = window.gl || {}; window.gl.webIDEPath = '/-/ide/project/akihe/radamsa/edit/' //]]> </script> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ // Append static, server-generated data not included in merge request entity (EE-Only) // Object.assign would be useful here, but it blows up Phantom.js in tests window.gl.mrWidgetData.is_geo_secondary_node = 'false' === 'true'; window.gl.mrWidgetData.geo_secondary_help_path = '/help/administration/geo/replication/configuration.md'; window.gl.mrWidgetData.sast_help_path = '/help/user/application_security/sast/_index.md'; window.gl.mrWidgetData.secret_detection_help_path = '/help/user/application_security/secret_detection/_index.md'; window.gl.mrWidgetData.container_scanning_help_path = '/help/user/application_security/container_scanning/_index.md'; window.gl.mrWidgetData.dast_help_path = '/help/user/application_security/dast/_index.md'; window.gl.mrWidgetData.dependency_scanning_help_path = '/help/user/application_security/dependency_scanning/_index.md'; window.gl.mrWidgetData.api_fuzzing_help_path = '/help/user/application_security/api_fuzzing/_index.md'; window.gl.mrWidgetData.coverage_fuzzing_help_path = '/help/user/application_security/coverage_fuzzing/_index.md'; window.gl.mrWidgetData.license_scanning_comparison_path = '' window.gl.mrWidgetData.license_scanning_comparison_collapsed_path = '' window.gl.mrWidgetData.container_scanning_comparison_path = '' window.gl.mrWidgetData.dependency_scanning_comparison_path = '' window.gl.mrWidgetData.sast_comparison_path = '' window.gl.mrWidgetData.dast_comparison_path = '' window.gl.mrWidgetData.secret_detection_comparison_path = '' window.gl.mrWidgetData.coverage_fuzzing_comparison_path = '' window.gl.mrWidgetData.api_fuzzing_comparison_path = '' window.gl.mrWidgetData.new_container_scanning_comparison_path = '' window.gl.mrWidgetData.new_dependency_scanning_comparison_path = '' window.gl.mrWidgetData.new_sast_comparison_path = '' window.gl.mrWidgetData.new_dast_comparison_path = '' window.gl.mrWidgetData.new_secret_detection_comparison_path = '' window.gl.mrWidgetData.new_coverage_fuzzing_comparison_path = '' window.gl.mrWidgetData.new_api_fuzzing_comparison_path = '' window.gl.mrWidgetData.aiCommitMessageEnabled = false window.gl.mrWidgetData.dismissal_descriptions = '{\"acceptable_risk\":\"The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk.\",\"false_positive\":\"An error in reporting in which a test result incorrectly indicates the presence of a vulnerability in a system when the vulnerability is not present.\",\"mitigating_control\":\"A management, operational, or technical control (that is, safeguard or countermeasure) employed by an organization that provides equivalent or comparable protection for an information system.\",\"used_in_tests\":\"The finding is not a vulnerability because it is part of a test or is test data.\",\"not_applicable\":\"The vulnerability is known, and has not been remediated or mitigated, but is considered to be in a part of the application that will not be updated.\"}'; window.gl.mrWidgetData.commit_path_template = '/akihe/radamsa/-/commit/$COMMIT_SHA'; window.gl.mrWidgetData.merge_trains_path = '/akihe/radamsa/-/merge_trains'; //]]> </script> </main> </div> </div> </div> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ if ('loading' in HTMLImageElement.prototype) { document.querySelectorAll('img.lazy').forEach(img => { img.loading = 'lazy'; let imgUrl = img.dataset.src; // Only adding width + height for avatars for now if (imgUrl.indexOf('/avatar/') > -1 && imgUrl.indexOf('?') === -1) { const targetWidth = img.getAttribute('width') || img.width; imgUrl += `?width=${targetWidth}`; } img.src = imgUrl; img.removeAttribute('data-src'); img.classList.remove('lazy'); img.classList.add('js-lazy-loaded'); img.dataset.testid = 'js-lazy-loaded-content'; }); } //]]> </script> <script nonce="0s6QErlP4RK8RFW0GkWVNw=="> //<![CDATA[ gl = window.gl || {}; gl.experiments = {}; //]]> </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10