Skip to content

Helper function bpf_strncmp

v5.17

Definition

Copyright (c) 2015 The Libbpf Authors. All rights reserved.

Do strncmp() between s1 and s2. s1 doesn't need to be null-terminated and s1_sz is the maximum storage size of s1. s2 must be a read-only string.

Returns

An integer less than, equal to, or greater than zero if the first s1_sz bytes of s1 is found to be less than, to match, or be greater than s2.

static long (* const bpf_strncmp)(const char *s1, __u32 s1_sz, const char *s2) = (void *) 182;

Usage

Docs could be improved

This part of the docs is incomplete, contributions are very welcome

Program types

This helper call can be used in the following program types:

Example

#include <vmlinux.h>
#include <bpf/bpf_helpers.h>

SEC("tp_btf/sys_enter")
int sys_enter_trace(void *ctx) {
  struct task_struct *task = (struct task_struct *)bpf_get_current_task_btf();
  if (bpf_strncmp(task->comm, TASK_COMM_LEN, "cat") != 0) {
    return 0;
  }
  bpf_printk("Hello, I'm a cat!\n");
  return 0;
}