Skip to content
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

fix: properly set ttl bit during object replacement #3991

Merged
merged 1 commit into from
Oct 24, 2024
Merged

fix: properly set ttl bit during object replacement #3991

merged 1 commit into from
Oct 24, 2024

Conversation

romange
Copy link
Collaborator

@romange romange commented Oct 24, 2024

fixes #3984

@romange romange enabled auto-merge (squash) October 24, 2024 16:36
Copy link
Contributor

@kostasrim kostasrim left a comment

Choose a reason for hiding this comment

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

I understand we did not properly set the ttl bit but how does this cause the crash mentioned in the issue ? ObjExpireTime will return UINT32_MAX. That merely affects the expiry time and ReallocIfNeeded (the second might have been problematic but it doesn't matter it is fixed now).

Why setting the ttl bit will cause issues since it will be ignored anyway ? (Ignore meaning that we always promt for the ttl but on wrapper)

@romange romange merged commit 5ce3d82 into main Oct 24, 2024
12 checks passed
@romange romange deleted the Bug3984 branch October 24, 2024 20:47
@romange
Copy link
Collaborator Author

romange commented Oct 24, 2024

@kostasrim ObjExpireTime should not be called on objects that do not have expiry information. it even has a DCHECK for that. If it is called - it accesses random memory and it leads to UB and crashes.

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.

HEXPIRE can cause SIGFPE and SIGSEGV
2 participants