Changeset 7681a9b5d1df0cbcaa5914cc33bb40fee8276a36

Show
Ignore:
Timestamp:
01/05/07 17:46:13 (1 year ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1178034373 +0000
git-parent:

[fd2c85f56b67d2ad436d67ada15ed0e8d4073578]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1178034373 +0000
Message:

Fix some memleaks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/vlc_sout.h

    r23333fe r7681a9b  
    216216 
    217217VLC_EXPORT(session_descriptor_t*,sout_AnnounceSessionCreate, (vlc_object_t *obj, const char *cfgpref) ); 
    218 VLC_EXPORT(int,                  sout_SessionSetMedia, (vlc_object_t *obj, session_descriptor_t *, char *, char *, int, char *, int) ); 
     218VLC_EXPORT(int,                  sout_SessionSetMedia, (vlc_object_t *obj, session_descriptor_t *, const char *, const char *, int, const char *, int) ); 
    219219VLC_EXPORT(void,                 sout_AnnounceSessionDestroy, (session_descriptor_t *) ); 
    220220VLC_EXPORT(announce_method_t*,   sout_SAPMethod, (void) ); 
  • modules/stream_out/standard.c

    r37b0b02 r7681a9b  
    391391            msg_Err (p_access, "SAP announces not supported for access %s", 
    392392                     psz_access); 
    393             free (fmt); 
    394             free (src); 
    395             free (dst); 
    396393            goto nosap; 
    397394        } 
     
    404401        p_stream->p_sys->p_session = p_session; 
    405402        sout_MethodRelease (p_method); 
    406     } 
     403 
    407404nosap: 
     405        free (fmt); 
     406        free (src); 
     407        free (dst); 
     408    } 
    408409 
    409410    p_stream->pf_add    = Add; 
  • src/stream_output/announce.c

    rd8a3ed8 r7681a9b  
    194194 
    195195int sout_SessionSetMedia (vlc_object_t *obj, session_descriptor_t *p_session, 
    196                           char *fmt, char *src, int sport, 
    197                           char *dst, int dport) 
    198 
    199     p_session->sdpformat = fmt; 
     196                          const char *fmt, const char *src, int sport, 
     197                          const char *dst, int dport) 
     198
     199    if ((p_session->sdpformat = strdup (fmt)) == NULL) 
     200        return VLC_ENOMEM; 
    200201 
    201202    /* GRUIK. We should not convert back-and-forth from string to numbers */ 
     
    203204    if (vlc_getaddrinfo (obj, dst, dport, NULL, &res) == 0) 
    204205    { 
    205         if (res->ai_addrlen <= sizeof (p_session->addr)) 
    206             memcpy (&p_session->addr, res->ai_addr, 
    207                     p_session->addrlen = res->ai_addrlen); 
     206        if (res->ai_addrlen > sizeof (p_session->addr)) 
     207            goto oflow; 
     208 
     209        memcpy (&p_session->addr, res->ai_addr, 
     210                p_session->addrlen = res->ai_addrlen); 
    208211        vlc_freeaddrinfo (res); 
    209212    } 
    210213    if (vlc_getaddrinfo (obj, src, sport, NULL, &res) == 0) 
    211214    { 
    212         if (res->ai_addrlen <= sizeof (p_session->orig)) 
    213             memcpy (&p_session->orig, res->ai_addr, 
    214                     p_session->origlen = res->ai_addrlen); 
     215        if (res->ai_addrlen > sizeof (p_session->orig)) 
     216            goto oflow; 
     217        memcpy (&p_session->orig, res->ai_addr, 
     218               p_session->origlen = res->ai_addrlen); 
    215219        vlc_freeaddrinfo (res); 
    216220    } 
    217221    return 0; 
     222 
     223oflow: 
     224    vlc_freeaddrinfo (res); 
     225    return VLC_ENOMEM; 
    218226} 
    219227 
     
    232240        free (p_session->psz_sdp); 
    233241        free (p_session->description); 
     242        free (p_session->sdpformat); 
    234243        free (p_session->url); 
    235244        free (p_session->email); 
  • src/stream_output/stream_output.h

    rc533bc1 r7681a9b  
    2222 * You should have received a copy of the GNU General Public License 
    2323 * along with this program; if not, write to the Free Software 
    24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ***************************************************************************/ 
     24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 
     25 ***************************************************************************/ 
    2526 
    2627#include <vlc_sout.h>