{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 84412,
      "executingTimeMillis" : 84412,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 7973,
      "waitingTimeMillis" : 7973
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 7953,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
            "branch" : [
              {
                "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
            "branch" : [
              {
                "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 4893,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "af54579bd49100c2d837044d7336d9df8377808f",
            "branch" : [
              {
                "SHA1" : "af54579bd49100c2d837044d7336d9df8377808f",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "af54579bd49100c2d837044d7336d9df8377808f",
            "branch" : [
              {
                "SHA1" : "af54579bd49100c2d837044d7336d9df8377808f",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
        "branch" : [
          {
            "SHA1" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/osmo-pcap"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#7953",
  "duration" : 84412,
  "estimatedDuration" : 94948,
  "executor" : None,
  "fullDisplayName" : "master-osmo-pcap #7953",
  "id" : "7953",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 7953,
  "queueId" : 150518,
  "result" : "SUCCESS",
  "timestamp" : 1782204008322,
  "url" : "https://jenkins.osmocom.org/jenkins/view/Sysmocom/job/master-osmo-pcap/7953/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_client_core.c"
        ],
        "commitId" : "4ac87349a66b9e0dde9b2dbbbcbcd8587c99702d",
        "timestamp" : 1782202672000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "client: honor IPv4 header length in GPRS filter\u000a\u000aThe GPRS-NS/BSSGP filter assumed a fixed 20-byte IPv4 header (IP_LEN)\u000awhen locating the UDP header and payload.  When the captured packet\u000acarries IPv4 options (ip_hl > 5), udp_data/payload_data pointed into\u000athe middle of the headers and check_gprs() parsed garbage, classifying\u000apackets incorrectly.\u000a\u000aUse the actual header length from ip_hl, reject malformed headers\u000a(ip_hl < 5), and re-validate that the larger headers fit within the\u000acaptured length before computing the payload.\u000a\u000aChange-Id: Iac1fa9cc2a3c06cbe19c3e7799a0b335f2e3dda9\u000aAI-Assisted: yes (Claude)\u000a",
        "date" : "2026-06-23 08:17:52 +0000",
        "id" : "4ac87349a66b9e0dde9b2dbbbcbcd8587c99702d",
        "msg" : "client: honor IPv4 header length in GPRS filter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_client_core.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_tls.c"
        ],
        "commitId" : "0f243b7e18ae8f0532dd394e80f2bd452a80cfe0",
        "timestamp" : 1782202676000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "tls: do not treat GNUTLS_E_AGAIN/INTERRUPTED as fatal on read\u000a\u000aosmo_tls_client_bfd_cb() treated any non-positive return from\u000agnutls_record_recv() as a fatal error and tore down the session.  On a\u000anon-blocking socket gnutls_record_recv() can return GNUTLS_E_AGAIN or\u000aGNUTLS_E_INTERRUPTED (both negative but non-fatal), which would drop\u000aan otherwise healthy TLS session.  Handle them as retryable, mirroring\u000athe existing logic in tls_write().\u000a\u000aChange-Id: If2f842b202dd08c07dffe3770c51cf0ce886beee\u000aAI-Assisted: yes (Claude)\u000a",
        "date" : "2026-06-23 08:17:56 +0000",
        "id" : "0f243b7e18ae8f0532dd394e80f2bd452a80cfe0",
        "msg" : "tls: do not treat GNUTLS_E_AGAIN/INTERRUPTED as fatal on read",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_tls.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_server_vty.c"
        ],
        "commitId" : "cc146605e0a53030e7a4d5c4e6835876cf67984f",
        "timestamp" : 1782202679000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "server: vty: validate rotate-localtime modulus against the new interval\u000a\u000aapply_rotate_localtime() computed the maximum allowed modulus from\u000apcap_server->rotate_localtime.intv, the currently-stored (old) interval,\u000arather than the intv argument being applied.  On first configuration the\u000astored interval is the default 0, so the switch hit the default case and\u000arejected an otherwise valid command; when changing intervals the modulus\u000awas bounds-checked against the wrong interval.  Switch on intv instead.\u000a\u000aChange-Id: I0b367d4e255db3208b41e12adec682026b99cc18\u000aAI-Assisted: yes (Claude)\u000a",
        "date" : "2026-06-23 08:17:59 +0000",
        "id" : "cc146605e0a53030e7a4d5c4e6835876cf67984f",
        "msg" : "server: vty: validate rotate-localtime modulus against the new interval",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_server_vty.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_server_network.c"
        ],
        "commitId" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
        "timestamp" : 1782202684000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "server: fix NULL deref of file_hdr_msg when store is disabled\u000a\u000aWhen a connection has storing disabled (no store), conn->file_hdr_msg\u000ais never populated.  The previous link-header handling skipped the\u000afirst branch (gated on conn->store) and fell through to the comparison\u000abranch, which dereferenced the still-NULL conn->file_hdr_msg, crashing\u000athe server on the first PKT_LINK_HDR from such a client.\u000a\u000aGate the whole header tracking on conn->store and simply free the\u000amessage when not storing, since osmo_pcap_conn_restart_trace() already\u000ano-ops in that case.\u000a\u000aChange-Id: I419e1b66d07307c3e49294984887c153cd8494c3\u000aAI-Assisted: yes (Claude)\u000a",
        "date" : "2026-06-23 08:18:04 +0000",
        "id" : "bb3afc9454b00016635ea5e6dd9d9fd7f58d01ca",
        "msg" : "server: fix NULL deref of file_hdr_msg when store is disabled",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_server_network.c"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
      "fullName" : "Vadim Yanitskiy"
    }
  ],
  "runs" : [
    {
      "number" : 7953,
      "url" : "https://jenkins.osmocom.org/jenkins/view/Sysmocom/job/master-osmo-pcap/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/7953/"
    }
  ]
}