Fixing an index-out-of-bounds error when serialising bad changes

[?]
Jan 4, 2021, 10:14 AM
CIEUBH465IFZXO3YDG7XYHP54NJ4TGVQD47SKNW6P5XM4X7IVNBAC

Dependencies

  • [2] VO5OQW4W Removing anyhow in libpijul
  • [3] I52XSRUH Massive cleanup, and simplification
  • [4] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [5] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).

Change contents

  • replacement in libpijul/src/record.rs at line 1053
    [3.524248][3.524248:524312]()
    if let Some(Atom::EdgeMap(ref mut e)) = *contents {
    [3.524248]
    [3.36165]
    if let Some(Atom::EdgeMap(mut e)) = contents.take() {
  • edit in libpijul/src/record.rs at line 1075
    [3.525185]
    [3.525185]
    if !e.edges.is_empty() {
    *contents = Some(Atom::EdgeMap(e))
    }
  • edit in libpijul/src/change/text_changes.rs at line 32
    [2.38728]
    [2.38728]
    #[error("Invalid change")]
    InvalidChange,
  • edit in libpijul/src/change/text_changes.rs at line 359
    [2.50520]
    [2.50520]
    debug!("file del");
  • edit in libpijul/src/change/text_changes.rs at line 377
    [2.51166]
    [2.51166]
    debug!("file undel");
  • edit in libpijul/src/change/text_changes.rs at line 433
    [2.53458]
    [2.53458]
    debug!("edit");
  • edit in libpijul/src/change/text_changes.rs at line 445
    [2.53905]
    [2.53905]
    debug!("replacement");
  • edit in libpijul/src/change/text_changes.rs at line 471
    [2.55197]
    [2.55197]
    debug!("solve order conflict");
  • edit in libpijul/src/change/text_changes.rs at line 483
    [2.55678]
    [2.55678]
    debug!("unsolve order conflict");
  • edit in libpijul/src/change/text_changes.rs at line 495
    [2.56158]
    [2.56158]
    debug!("resurrect zombies");
  • edit in libpijul/src/change/text_changes.rs at line 1221
    [2.85693]
    [2.85693]
    Atom::EdgeMap(ref n) if n.edges.is_empty() => return Err(TextSerError::InvalidChange),