char comm[TASK_COMM_LEN];
};
-BPF_HASH(message, struct data_t, int)
-BPF_HISTOGRAM(msg_type, int)
+BPF_HASH(message, struct data_t, int);
+BPF_HISTOGRAM(msg_type, int);
int g_get_message_type(struct pt_regs *ctx, void *conn, struct GDBusMessage *message) {
msg_type.increment(message->type);
}
int message_type(struct pt_regs *ctx, void *conn, struct DBusMessage *message) {
- const char *c = message->header.data.str;
- c++;
- msg_type.increment(*c);
+ char *addr = 0;
+ bpf_probe_read(&addr, sizeof(addr), (char*)message + offsetof(struct DBusMessage, header.data.str));
+ char type;
+ bpf_probe_read(&type, sizeof(type), addr + 1);
+ msg_type.increment(type);
return 0;
}