Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Tag::read_from_path(): value: Parsing: uneven number of IPLS strings #147

@randoragon

Description

@randoragon

Recently, id3 completely stopped being able to parse any of my files. Strangely enough, I have not run cargo update in a long time, so I don't understand how I could have even introduced a regression, but nevertheless, here's a reproducible example.

use id3::Tag;

fn main() {
    let tag = Tag::read_from_path("sample.mp3").unwrap();
    println!("{:#?}", tag);
}

sample.mp3.tar.gz
I attached sample.mp3 as a gzipped tar archive, because GitHub does not seem to support attaching MP3s directly (but MP4s are totally fine, huh .-.). I tested many of my over 10,000 local mp3 files and all of them exhibit the same error. It did not use to happen before, and other tools like mid3v2 and eyeD3 have no trouble reading the same files.

Executing the above program with sample.mp3 in the current directory produces the following, with RUST_BACKTRACE=full:

$ RUST_BACKTRACE=full cargo r
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running `target/debug/rsid3`
thread 'main' panicked at src/main.rs:4:49:
called `Result::unwrap()` on an `Err` value: Parsing: uneven number of IPLS strings
stack backtrace:
   0:     0x5555555f2ed6 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h9754a6437f1de22a
   1:     0x5555556326cb - core::fmt::write::hb706a393bb60a06f
   2:     0x5555555f7399 - std::io::Write::write_fmt::h9b447dc5d824d0bd
   3:     0x55555561dad6 - std::panicking::default_hook::{{closure}}::h227952daede9dd84
   4:     0x55555561d766 - std::panicking::default_hook::h31626ee1feb8ee2a
   5:     0x55555561dfa1 - std::panicking::rust_panic_with_hook::h76d2aa694a00748e
   6:     0x5555555f3427 - std::panicking::begin_panic_handler::{{closure}}::h8855a344ffa1638b
   7:     0x5555555f30e9 - std::sys::backtrace::__rust_end_short_backtrace::h3110d0cbfbf26886
   8:     0x55555561dc14 - rust_begin_unwind
   9:     0x555555563833 - core::panicking::panic_fmt::h3af706d0346c1c60
  10:     0x555555563246 - core::result::unwrap_failed::h2ba69a02b8a8418b
  11:     0x55555556b843 - core::result::Result<T,E>::unwrap::h2d43590ad2b0d9b1
                               at /build/rustc-1.82.0-src/library/core/src/result.rs:1102:23
  12:     0x55555556b843 - rsid3::main::hd10313d690953dd6
                               at /home/pcache/Software/id3/src/main.rs:4:15
  13:     0x55555558f2db - core::ops::function::FnOnce::call_once::hb3f7b392556f4b59
                               at /build/rustc-1.82.0-src/library/core/src/ops/function.rs:250:5
  14:     0x5555555664de - std::sys::backtrace::__rust_begin_short_backtrace::h1656c15ebe1192d9
                               at /build/rustc-1.82.0-src/library/std/src/sys/backtrace.rs:154:18
  15:     0x555555566491 - std::rt::lang_start::{{closure}}::h59c225471d41be13
                               at /build/rustc-1.82.0-src/library/std/src/rt.rs:164:18
  16:     0x55555561f985 - std::rt::lang_start_internal::h2084fce485147f46
  17:     0x55555556646a - std::rt::lang_start::h1684807171f34ae4
                               at /build/rustc-1.82.0-src/library/std/src/rt.rs:163:17
  18:     0x55555556bafe - main
  19:     0x7ffff7dca27e - __libc_start_call_main
  20:     0x7ffff7dca339 - __libc_start_main_alias_2
  21:     0x555555563d45 - _start
  22:                0x0 - <unknown>

If there's something wrong with my files, I would appreciate some feedback. Although, again, other tools seem to have no trouble reading them, and neither did rust-id3 just a few weeks ago, so this seems strange.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions