@@ -230,11 +230,21 @@ static void ebpf_ctty__fill(struct ebpf_tty_dev *ctty, const struct task_struct
230
230
231
231
static void ebpf_pid_info__fill (struct ebpf_pid_info * pi , const struct task_struct * task )
232
232
{
233
- pi -> tid = BPF_CORE_READ (task , pid );
234
- pi -> tgid = BPF_CORE_READ (task , tgid );
235
- pi -> ppid = BPF_CORE_READ (task , group_leader , real_parent , tgid );
236
- pi -> pgid = BPF_CORE_READ (task , group_leader , signal , pids [PIDTYPE_PGID ], numbers [0 ].nr );
237
- pi -> sid = BPF_CORE_READ (task , group_leader , signal , pids [PIDTYPE_SID ], numbers [0 ].nr );
233
+ int e_pgid , e_sid ;
234
+
235
+ if (bpf_core_enum_value_exists (enum pid_type , PIDTYPE_PGID ))
236
+ e_pgid = bpf_core_enum_value (enum pid_type , PIDTYPE_PGID );
237
+ else
238
+ e_pgid = PIDTYPE_PGID ;
239
+ if (bpf_core_enum_value_exists (enum pid_type , PIDTYPE_SID ))
240
+ e_sid = bpf_core_enum_value (enum pid_type , PIDTYPE_SID );
241
+ else
242
+ e_sid = PIDTYPE_SID ;
243
+ pi -> tid = BPF_CORE_READ (task , pid );
244
+ pi -> tgid = BPF_CORE_READ (task , tgid );
245
+ pi -> ppid = BPF_CORE_READ (task , group_leader , real_parent , tgid );
246
+ pi -> pgid = BPF_CORE_READ (task , group_leader , signal , pids [e_pgid ], numbers [0 ].nr );
247
+ pi -> sid = BPF_CORE_READ (task , group_leader , signal , pids [e_sid ], numbers [0 ].nr );
238
248
pi -> start_time_ns = BPF_CORE_READ (task , group_leader , start_time );
239
249
}
240
250
0 commit comments