Modify
Warning Please read the Ticket HowTo before creating or commenting on a ticket. Failure to do so may cause your ticket to be rejected or result in a slower response.

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#9950 closed Patch - Bug Fix (fixed)

[PATCH] DownloadManager SEGV after timeout

Reported by: Lawrence Rust <lvr@…> Owned by: cpinkham
Priority: minor Milestone: 0.25
Component: MythTV - General Version: Master Head
Severity: medium Keywords: DownloadManager SEGV
Cc: Ticket locked: no

Description

  1. Fix a SEGV that can occur if a download times out. If a caller makes a synchronous call then downloadNow will timeout after 10 seconds but downloadFinished, which is a slot, can be called after control has returned to the caller and the QByteArray data buffer has been deallocated.
  1. Allow the caller to set their own User-Agent header.
  1. Provide better error reporting.

Attachments (1)

0001-DownloadManager-Fix-SEGV-after-timeout.patch (3.9 KB) - added by Lawrence Rust <lvr@…> 3 years ago.

Download all attachments as: .zip

Change History (6)

Changed 3 years ago by Lawrence Rust <lvr@…>

comment:1 Changed 3 years ago by cpinkham

  • Owner set to cpinkham
  • Status changed from new to assigned

comment:2 Changed 3 years ago by Github

Improvements to MythDownloadManager? error reporting.

Refs #9950

Signed-off-by: Chris Pinkham <cpinkham@…>

Branch: master
Changeset: 1e235ebb2724d347e12d752e0befa7f6773ad0e3

comment:3 Changed 3 years ago by Github

  • Milestone changed from unknown to 0.25
  • Resolution set to fixed
  • Status changed from assigned to closed

Fix a potential segfault if MDM::downloadNow() times out.

Reset the destination QByteArray pointer after a download
timeout to make sure the downloadFinished() callback doesn't
try to write to it after it has been deallocated.

Closes #9950

I'm leaving part 2 of #9950 uncommitted for now since we do
not need or use this functionality internally.

Signed-off-by: Chris Pinkham <cpinkham@…>

Branch: master
Changeset: db25a2885364d4d1b2198056f7a477f60cb395d6

comment:4 Changed 3 years ago by Lawrence Rust <lvr@…>

Part 2 is of interest for implementing MHEG InteractionChannel? i.e. BBC iPlayer functionality. The spec mandates that the client set the User-Agent to a specific form. That said, there are a number of other chages to do with cache querying that would be required too.

comment:5 Changed 3 years ago by cpinkham

When you have the MHEG InterationChannel? patch ready, you can resubmit
the User-Agent change to MythDownloadManager? with it and we can apply
that functionality along with the code that uses it at the same time.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'new'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.