After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 748162 - asfdemux: can't seek to the offset which is bigger than 4G bytes in push mode
asfdemux: can't seek to the offset which is bigger than 4G bytes in push mode
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-04-20 05:33 UTC by Cliff Han
Modified: 2015-04-20 08:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
cast the guint32 variable to guint64 (1.03 KB, patch)
2015-04-20 05:49 UTC, Cliff Han
committed Details | Review

Description Cliff Han 2015-04-20 05:33:51 UTC
The seek operation to the offset over 4G bytes fails due to the wrong calculation of offset.
Asfdemux didn't care that a multiplication between two 32-Bit variables can result in out-of-range. See the below codes.

gst_asf_demux_handle_seek_push (GstASFDemux * demux, GstEvent * event)
{
...
  cur = demux->data_offset + (packet * demux->packet_size);
...
}
Comment 1 Cliff Han 2015-04-20 05:49:05 UTC
Created attachment 301969 [details] [review]
cast the guint32 variable to guint64
Comment 2 Vincent Penquerc'h 2015-04-20 08:14:53 UTC
Thanks, pushed with just a trivial typo fix in the commit message (s/asdemux/asfdemux/).


commit 92f5f3f8f39f23ffad18d448f2814b0183f06bc8
Author: Cliff Han <cliff.han@lge.com>
Date:   Mon Apr 20 14:35:30 2015 +0900

    asfdemux: fix a seek failure due to out-of-range in push mode
    
    A seek in push mode failed for big offsets which are beyond
    the range of guint32.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=748162