Topic: error safe systems
Topic: security leaks and weaknesses
Topic: type-safe and secure languages
Group: security
Topic: preventing accidental errors
Topic: dynamic type checking
Topic: undefined, null, and other signal values
Topic: strings
Topic: safe use of pointers
Topic: memory management by regions or memory pool
Topic: union data type
Topic: flavor analysis and typestates for supplementary type checking
Topic: range checking
Topic: enumerated data types
| |
Reference
Jim, T., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., Wang, Y.,
"Cyclone: A safe dialect of C",
Proceedings of the General Track, 2002 USENIX Annual Technical Conference, Monterey, California, USA, June 2002, pp. 275-288, http://www.cs.cornell.edu/projects/cyclone.
Google
Quotations
abstract ;;Quote: Cyclone is a safe dialect of C; avoids buffer overflows, format string attacks, and memory management errors; static analysis plus run-time checks and annotations
| 275 ;;Quote: NUL-terminated strings important for efficiency; allows fixed-length buffer that holds variable-length strings; problem of overrun
| 275 ;;Quote: C allows pointer beyond end of array; leads to buffer overflow
| 277 ;;Quote: Cyclone has never-NULL pointers (@...) and fat pointers (?...) with run-time checking (e.g., varargs)
| 277+;;Quote: Cyclone has growable memory region, tagged union, polymorphism, and exceptions
| 279 ;;Quote: use static, region analysis to prevent dereference of a non-live region; e.g., a block's local variables
| 279+;;Quote: use annotations to track memory regions across function calls
| 280 ;;Quote: uses growable regions for safe, explicit memory allocation without relying on a garbage collector
| 283 ;;Quote: convert C to Cyclone by changing less than 10% of lines; 20-50% of these are fat pointers (?...)
| 283 ;;Quote: Cyclone is up to 3x slower than C for compute-bound applications; up to 6x slower in microbenchmarks
| 283 ;;Quote: Cyclone identified array bound violations in three benchmarks
| 286 ;;Quote: a C enumeration is really treated as 'int'; not useful for tagged unions
| 286 ;;Quote: a pointer to a zero-terminated array is safe as long as the pointer only moves inside the array and the terminator is safe
|
Related Topics
Topic: error safe systems (76 items)
Topic: security leaks and weaknesses (67 items)
Topic: type-safe and secure languages (43 items)
Group: security (23 topics, 874 quotes)
Topic: preventing accidental errors (37 items)
Topic: dynamic type checking (43 items)
Topic: undefined, null, and other signal values (34 items)
Topic: strings (13 items)
Topic: safe use of pointers (102 items)
Topic: memory management by regions or memory pool (17 items)
Topic: union data type (12 items)
Topic: flavor analysis and typestates for supplementary type checking (68 items)
Topic: range checking (20 items)
Topic: enumerated data types (17 items)
|