Ticket #12650: Avoid-crash-when-file-transfer-can-t-open-files.patch

File Avoid-crash-when-file-transfer-can-t-open-files.patch, 1.7 KB (added by Roger Siddons, 8 years ago)
  • mythtv/programs/mythbackend/mainserver.cpp

    From 47cab31d551210437dc5dd86e24ed170dede59da Mon Sep 17 00:00:00 2001
    From: Roger Siddons <rsiddons@mythtv.org>
    Date: Mon, 11 Apr 2016 10:42:35 +0100
    Subject: [PATCH] Avoid crash when file transfer can't open files
    
    916e43bb inadvertently adds a failed File Transfer to the fileTransferList
    causing a segfault when a subsequent socket disconnection attempts to clean up and
    delete the File Transfer again.
    
    Fixes #12650
    
    diff --git a/mythtv/programs/mythbackend/mainserver.cpp b/mythtv/programs/mythbackend/mainserver.cpp
    index 9e36983..98b93cd 100644
    a b void MainServer::HandleAnnounce(QStringList &slist, QStringList commands, 
    19411941            if (!controlSocketList.remove(socket))
    19421942                return; // socket was disconnected
    19431943            ft = new FileTransfer(filename, socket, writemode);
    1944             fileTransferList.push_back(ft);
    19451944        }
    19461945        else
    19471946        {
    void MainServer::HandleAnnounce(QStringList &slist, QStringList commands, 
    19491948            if (!controlSocketList.remove(socket))
    19501949                return; // socket was disconnected
    19511950            ft = new FileTransfer(filename, socket, usereadahead, timeout_ms);
    1952             fileTransferList.push_back(ft);
    19531951        }
    19541952
    19551953        if (!ft->isOpen())
    void MainServer::HandleAnnounce(QStringList &slist, QStringList commands, 
    19631961            return;
    19641962        }
    19651963        ft->IncrRef();
     1964        fileTransferList.push_back(ft);
    19661965
    19671966        retlist << QString::number(socket->GetSocketDescriptor());
    19681967        retlist << QString::number(ft->GetFileSize());