Opened 7 years ago
Closed 5 years ago
#165 closed defect (fixed)
azm dies on dumps from some early boot tapes
| Reported by: | Eric Swenson | Owned by: | Eric Swenson |
|---|---|---|---|
| Priority: | major | Milestone: | MR12.7 |
| Component: | Tools | Version: | MR12.6f |
| Keywords: | Cc: |
Description
Multics crashed during early initialization and BCE offered to make a dump. read_early_dump_tape had no trouble reading the resulting dump tape, and the obsolete ol_dump progrom also had no trouble analyzing the dump. However, azm died with the following out_of_bounds error:
Error: out_of_bounds at amu_fdump_translate_$to_temp_seg|610
(>system_library_tools>bound_amu_)
referencing >dumps>040519.1142.1.1234|776000
Attempt to access beyond end of segment.
r 15:31 0.504 525 level 2
Change History (5)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
The above fix is to the locate_segment procedure, which does the wrong thing if total_lth ends up being zero (segment not in dump). The fix sets base and base_2 to null(), which the caller handles as indicating that the segment isn't found.
comment:3 by , 7 years ago
| Milestone: | → MR12.6g |
|---|---|
| Status: | assigned → accepted |
comment:5 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |

The fix is trivial:
cpa [lpn amu_fdump_translate_.pl1] amu_fdump_translate_.pl1
Inserted in B:
B252 if total_lth = 0 then do;
B253 base = null ();
B254 base_2 = null ();
B255 return;
B256 end;
B257
Preceding:
A252 if (offset + total_lth) <= fdump_info.dump_seg_lth (dump_seg_idx) then do;
Comparison finished: 1 difference, 6 lines.
r 15:38 0.975 52