Hugo Beauzée-Luyssen pushed to branch master at VideoLAN / VLC
Commits:
271d3552 by Lyndon Brown at 2022-01-03T15:33:30+00:00
sftp: fix invalid free
`p_sys->psz_base_url` is `free()`'d by `Close()` as used in the error
path.
use of a temporary variable, as requested in review, fixes the problem.
- - - - -
1 changed file:
- modules/access/sftp.c
Changes:
=====================================
modules/access/sftp.c
=====================================
@@ -475,6 +475,7 @@ static int Open( vlc_object_t* p_this )
}
/* No path, default to user Home */
+ char *base_url_tmp;
if( !psz_path )
{
const size_t i_size = 1024;
@@ -500,11 +501,12 @@ static int Open( vlc_object_t* p_this )
char *base = vlc_path2uri( psz_path, "sftp" );
if( !base )
goto error;
- if( -1 == asprintf( &p_sys->psz_base_url, "sftp://%s%s",
p_access->psz_location, base + 7 ) )
+ if( -1 == asprintf( &base_url_tmp, "sftp://%s%s",
p_access->psz_location, base + 7 ) )
{
free( base );
goto error;
}
+ p_sys->psz_base_url = base_url_tmp;
free( base );
}
@@ -534,8 +536,9 @@ static int Open( vlc_object_t* p_this )
if( !p_sys->psz_base_url )
{
- if( asprintf( &p_sys->psz_base_url, "sftp://%s",
p_access->psz_location ) == -1 )
+ if( asprintf( &base_url_tmp, "sftp://%s", p_access->psz_location )
== -1 )
goto error;
+ p_sys->psz_base_url = base_url_tmp;
/* trim trailing '/' */
size_t len = strlen( p_sys->psz_base_url );
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/commit/271d3552b7ad097d796bc431e946931abbe15658
--
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/commit/271d3552b7ad097d796bc431e946931abbe15658
You're receiving this email because of your account on code.videolan.org.
_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits