Commit c8661b9
committed
fix(cypher,store): prevent crashes from buffer overflow, OOM, and NULL stmts
- cypher: Add bounds check in lex_string_literal to prevent stack buffer
overflow on string literals >4096 bytes. Escape sequences are always
parsed correctly even past the truncation boundary.
- cypher: Add malloc/calloc NULL checks in parse_props, parse_rel_types,
parse_in_condition, and parse_case_expr. Growth paths use non-destructive
realloc (temp pointer) so accumulated elements can be freed on OOM
instead of leaking through safe_realloc's free-on-failure semantics.
- store: Add sqlite3_prepare_v2 return code checks at 3 sites in
cbm_store_schema_info and collect_pkg_names. Partially prepared
statements are finalized before returning. Schema function cleans up
partially populated output on failure. collect_pkg_names returns
CBM_NOT_FOUND (not 0) to distinguish errors from empty results.1 parent 1d30971 commit c8661b9
3 files changed
+134
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| 95 | + | |
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
111 | 114 | | |
112 | 115 | | |
113 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
114 | 119 | | |
115 | 120 | | |
116 | 121 | | |
| |||
469 | 474 | | |
470 | 475 | | |
471 | 476 | | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
472 | 480 | | |
473 | 481 | | |
474 | 482 | | |
| |||
487 | 495 | | |
488 | 496 | | |
489 | 497 | | |
490 | | - | |
491 | | - | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
492 | 510 | | |
493 | 511 | | |
494 | 512 | | |
| |||
569 | 587 | | |
570 | 588 | | |
571 | 589 | | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
572 | 593 | | |
573 | 594 | | |
574 | 595 | | |
| |||
587 | 608 | | |
588 | 609 | | |
589 | 610 | | |
590 | | - | |
591 | | - | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
592 | 622 | | |
593 | 623 | | |
594 | 624 | | |
| |||
762 | 792 | | |
763 | 793 | | |
764 | 794 | | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
765 | 801 | | |
766 | 802 | | |
767 | 803 | | |
768 | 804 | | |
769 | 805 | | |
770 | 806 | | |
771 | | - | |
772 | | - | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
773 | 821 | | |
774 | 822 | | |
775 | 823 | | |
| |||
1061 | 1109 | | |
1062 | 1110 | | |
1063 | 1111 | | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
1064 | 1115 | | |
1065 | 1116 | | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
1066 | 1121 | | |
1067 | 1122 | | |
1068 | 1123 | | |
| |||
1073 | 1128 | | |
1074 | 1129 | | |
1075 | 1130 | | |
1076 | | - | |
1077 | | - | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
1078 | 1144 | | |
1079 | 1145 | | |
1080 | 1146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2552 | 2552 | | |
2553 | 2553 | | |
2554 | 2554 | | |
2555 | | - | |
| 2555 | + | |
| 2556 | + | |
| 2557 | + | |
| 2558 | + | |
| 2559 | + | |
| 2560 | + | |
2556 | 2561 | | |
2557 | 2562 | | |
2558 | 2563 | | |
| |||
2577 | 2582 | | |
2578 | 2583 | | |
2579 | 2584 | | |
2580 | | - | |
| 2585 | + | |
| 2586 | + | |
| 2587 | + | |
| 2588 | + | |
| 2589 | + | |
| 2590 | + | |
| 2591 | + | |
2581 | 2592 | | |
2582 | 2593 | | |
2583 | 2594 | | |
| |||
3283 | 3294 | | |
3284 | 3295 | | |
3285 | 3296 | | |
3286 | | - | |
| 3297 | + | |
| 3298 | + | |
| 3299 | + | |
| 3300 | + | |
| 3301 | + | |
| 3302 | + | |
3287 | 3303 | | |
3288 | 3304 | | |
3289 | 3305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
81 | 107 | | |
82 | 108 | | |
83 | 109 | | |
| |||
2064 | 2090 | | |
2065 | 2091 | | |
2066 | 2092 | | |
| 2093 | + | |
2067 | 2094 | | |
2068 | 2095 | | |
2069 | 2096 | | |
| |||
0 commit comments