Skip to content

Fix #51 segfault #53

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 5, 2024
Merged

Fix #51 segfault #53

merged 3 commits into from
Aug 5, 2024

Conversation

probonopd
Copy link
Member

This seems to fix

@TheAssassin I am going to merge this as an emergency fix (since the runtime segfaults without this, this won't make it worse), please do carefully review afterwards nonetheless. Thanks!

@probonopd probonopd merged commit 112d0e3 into main Aug 5, 2024
17 checks passed
@probonopd probonopd deleted the probonopd-fix-51 branch August 5, 2024 11:21
const size_t suffix_len = 6; // Length of "XXXXXX"

// Create a modifiable copy of argv0
char argv0_copy[PATH_MAX]; // Ensure this is large enough for your use case
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please stop using PATH_MAX! Not only me but others have told you more than once that this variable's name is really misleading. One can allocate the buffer to the correct size directly in this case. (Or just use C++...)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See, e.g., #38, which attempts to fix some of this mess...

Copy link
Member Author

@probonopd probonopd Aug 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Point taken, but at least with this change we don't get an immediate segfault like we had before.

(This whole world of pointers and buffers is not what I normally want to deal with. But here in the runtime we currently have to use C indeed at the moment.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The runtime really needs way more love to fix some of those C-isms. I wish C had a real string concept. But then again, we wanted to rewrite the runtime in another language anyway. The main issue with that is that libfuse is not available for languages like Rust, at least nothing that would be maintained or remotely up to date. Languages like Go don't fix the real issues we have either. C++ would fix most of the complaints but including the STL causes the binary to grow size wise.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. So C it is. Just needs some love.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I have some hope for Rust using FFI. That'd still eliminate most of the issues on our side.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will asprintf() help in that case?
Also things like strlcpy() are currently
available in glibc.
Just my 2 cents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants