[GSoC 2022]: Student Introduction

Ice Gambit icegambit91 at gmail.com
Fri Mar 25 12:56:36 UTC 2022

Hi. My name is Sahil. I am currently pursuing a dual major in Computer
Science and Economics. I am sorry I am introducing myself quite late as I
had my mid semester exams in college.

I am interested in several projects that are being offered this year as a
part of GSoC and would like to work on one of them.

I am especially interested in working with strace since I have been using
strace as an end user for a few months while participating in CTFs
(especially for debugging shellcode). I have been using C for quite some
time for a few mini projects (for example, I am currently working on a
semester-long compiler construction project, which is to be written in C,
as part of my "compiler construction" course in college).

However, I am quite new to system programming. I intend to get into this
field in the long run and I also wish to become a long-term contributor to

I am interested in the following projects and would like to know more about
[1] Support for BTF and other BPF decoding improvements
[2] Implement an ioctl decoder
[3] Implement a netlink decoder

I have already gone through the following:
[1] https://strace.io/wiki/NewContributorGuide
[2] https://strace.io/wiki/MicroProjects
[3] https://strace.io/wiki/FeatureRequests

Given the projects that I am interested in, I feel that it might be
appropriate for me to work on implementing a
syscall/ioctl_command/netlink_protocol parser as a microproject. Would this
be a reasonable microproject to work on or is there something else that you
think is more appropriate?

To get an idea of how an ioctl command parser is written, I have already
started looking at the codebase and have looked at the patches in the
following issues:
[1] https://github.com/strace/strace/issues/44 (decode SNDCTL_* ioctls)
[2] https://github.com/strace/strace/issues/52 (add support for decoding
USBDEVFS* ioctl commands)

I also had a few questions:

[1] In src/ioctls.c (
https://github.com/strace/strace/blob/master/src/ioctl.c#L346), there is a
function called ioctl_decode(). Is this where the actual ioctl decoder is
called for a specific syscall?

[2] I went through this blog post (
where the author talks about how a netlink parser is implemented. But I
found it quite hard to understand. I was wondering if there are more
resources or documentation that could point me in the right direction?

I really look forward to hearing from you.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20220325/cca3dd53/attachment.htm>

More information about the Strace-devel mailing list