MP4Box crashes with Segmentation fault when decrypting DRM file while get auxiliary information by saiz/saio rather than by parsing senc box.
Dereferencing a NULL pointer in drm_sample.c (1040,1052): GF_TrackFragmentBox *traf.
This change helped for me:
Index: isomedia/drm_sample.c
===================================================================
--- isomedia/drm_sample.c (revision 5277)
+++ isomedia/drm_sample.c (working copy)
@@ -1037,7 +1037,7 @@
}
}
//assume CENC if we find a senc box - hack for some ultraviolet files :(
- if (!has_saiz && (traf->sample_encryption || traf->piff_sample_encryption) )
+ if (!has_saiz && traf && (traf->sample_encryption || traf->piff_sample_encryption) )
has_saiz = GF_TRUE;
for (i = 0; i < gf_list_count(sai_offsets); i++) {
@@ -1049,7 +1049,7 @@
}
//assume CENC if we find a senc box - hack for some ultraviolet files :(
- if (!has_saio && (traf->sample_encryption || traf->piff_sample_encryption) )
+ if (!has_saio && traf && (traf->sample_encryption || traf->piff_sample_encryption) )
has_saio = GF_TRUE;
return (has_saiz && has_saio);
Closing bug as the patch is applied.