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

upcall_vec_append can crash when self-appending #498

Closed
jdm opened this issue Jun 15, 2011 · 2 comments
Closed

upcall_vec_append can crash when self-appending #498

jdm opened this issue Jun 15, 2011 · 2 comments
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

Comments

@jdm
Copy link
Contributor

jdm commented Jun 15, 2011

use std;
import std::vec;

fn main()
{
let vec[int] a = [0];
auto i = 20;
while (i > 0) {
a += a;
i -= 1;
}
}

I suspect, but haven't confirmed, the following:
If a vector that is in the process of self-appending (v += v) grows, we can realloc the existing vector pointer and invalidate the memory that is being copied.

@ghost ghost assigned msullivan Jun 24, 2011
@msullivan
Copy link
Contributor

I'm the last person who touched the vec append glue. I'll look into it.

@msullivan
Copy link
Contributor

Yeah, you were exactly right. Fixed by #573.

keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this issue Dec 12, 2017
…hton

Run ios tests

This WIP PR runs the tests on the iOS simulator. I've tested it locally using macOS Sierra and XCode 8.2.1. I get this output:

RUNNING ALL TESTS
PASSED 6756 tests

The python script probably needs to be customized for the specific failure output from this test runner (update: newest commit should have this).
kazcw pushed a commit to kazcw/rust that referenced this issue Oct 23, 2018
…perations.

I've opened rust-lang#501 to track the workarounds introduced here.

Closes rust-lang#498.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Dec 23, 2018
Fixes clippy tool state

Changes:
````
FIXME > TODO
rustup rust-lang#56992
Document map_clone known problems rust-lang#498
Remove header link
test: panic at map_unit_fn.rs:202 for map() without args
rm unused file map_unit_fn.stderr
panic at map_unit_fn.rs:202 for map() without args
Change contrib.md hierarchy, link to it from readme
Workaround rust-lang#43081
Teach `suspicious_else_formatting` about `if .. {..} {..}`
Link to `rustc_driver` crate in plugin
mutex_atomic: Correct location of AtomicBool and friends
Update README local run command to specify syspath
Do not mark as_ref as useless if it's followed by a method call
Changes lint sugg to bitwise and operator `&`
Run update_lints after renaming
Rename lint to MODULE_NAME_REPETITIONS
Add renaming tests
Move renaming to the right place
Implements lint for order comparisons against bool
fix(module_name_repeat): Try to register renamed lint, not valid yet
Fix an endless loop in the tests.
Fix `implicit_return` false positives.
chore(moduel_name_repeat): Rename stutter lint to module_name_repeat to avoid ableist language
Make integration tests fail on 'E0463'
base tests: make sure cargo-clippy binary can be called directly
Revert "Merge pull request rust-lang#3257 from o01eg/remove-sysroot"
````
bors added a commit that referenced this issue Dec 24, 2018
submodules: update clippy from a416c5e to fc24fce

Fixes clippy tool state

Changes:
````
FIXME > TODO
rustup #56992
Document map_clone known problems #498
Remove header link
test: panic at map_unit_fn.rs:202 for map() without args
rm unused file map_unit_fn.stderr
panic at map_unit_fn.rs:202 for map() without args
Change contrib.md hierarchy, link to it from readme
Workaround #43081
Teach `suspicious_else_formatting` about `if .. {..} {..}`
Link to `rustc_driver` crate in plugin
mutex_atomic: Correct location of AtomicBool and friends
Update README local run command to specify syspath
Do not mark as_ref as useless if it's followed by a method call
Changes lint sugg to bitwise and operator `&`
Run update_lints after renaming
Rename lint to MODULE_NAME_REPETITIONS
Add renaming tests
Move renaming to the right place
Implements lint for order comparisons against bool
fix(module_name_repeat): Try to register renamed lint, not valid yet
Fix an endless loop in the tests.
Fix `implicit_return` false positives.
chore(moduel_name_repeat): Rename stutter lint to module_name_repeat to avoid ableist language
Make integration tests fail on 'E0463'
base tests: make sure cargo-clippy binary can be called directly
Revert "Merge pull request #3257 from o01eg/remove-sysroot"
````

r? @oli-obk
pdietl pushed a commit to pdietl/rust that referenced this issue Apr 23, 2020
"Improve language in 'Constant Expressions'.
ZuseZ4 pushed a commit to EnzymeAD/rust that referenced this issue Mar 7, 2023
GuillaumeGomez pushed a commit to GuillaumeGomez/rust that referenced this issue Jul 10, 2024
…h-params

Fix PassMode::Indirect with params
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Projects
None yet
Development

No branches or pull requests

2 participants