Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
3464c8dd
Commit
3464c8dd
authored
Jan 24, 2008
by
Rafaël Carré
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* input/stream.c: checks memory allocation, patch by Michael Gao completed by myself
parent
346ba619
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
5 deletions
+52
-5
src/input/stream.c
src/input/stream.c
+52
-5
No files found.
src/input/stream.c
View file @
3464c8dd
...
@@ -228,7 +228,7 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -228,7 +228,7 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
{
{
stream_t
*
s
=
vlc_stream_create
(
VLC_OBJECT
(
p_access
)
);
stream_t
*
s
=
vlc_stream_create
(
VLC_OBJECT
(
p_access
)
);
stream_sys_t
*
p_sys
;
stream_sys_t
*
p_sys
;
char
*
psz_list
;
char
*
psz_list
=
NULL
;
if
(
!
s
)
return
NULL
;
if
(
!
s
)
return
NULL
;
...
@@ -241,6 +241,11 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -241,6 +241,11 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
s
->
pf_destroy
=
AStreamDestroy
;
s
->
pf_destroy
=
AStreamDestroy
;
s
->
p_sys
=
p_sys
=
malloc
(
sizeof
(
stream_sys_t
)
);
s
->
p_sys
=
p_sys
=
malloc
(
sizeof
(
stream_sys_t
)
);
if
(
p_sys
==
NULL
)
{
msg_Err
(
s
,
"Out of memory when allocating stream_sys_t"
);
goto
error
;
}
/* UTF16 and UTF32 text file conversion */
/* UTF16 and UTF32 text file conversion */
s
->
i_char_width
=
1
;
s
->
i_char_width
=
1
;
...
@@ -271,11 +276,22 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -271,11 +276,22 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
if
(
(
psz_list
=
var_CreateGetString
(
s
,
"input-list"
))
&&
*
psz_list
)
if
(
(
psz_list
=
var_CreateGetString
(
s
,
"input-list"
))
&&
*
psz_list
)
{
{
access_entry_t
*
p_entry
=
malloc
(
sizeof
(
access_entry_t
)
);
access_entry_t
*
p_entry
=
malloc
(
sizeof
(
access_entry_t
)
);
if
(
p_entry
==
NULL
)
{
msg_Err
(
s
,
"Out of memory when allocating access_entry_t"
);
goto
error
;
}
char
*
psz_name
,
*
psz_parser
=
psz_name
=
psz_list
;
char
*
psz_name
,
*
psz_parser
=
psz_name
=
psz_list
;
p_sys
->
p_list_access
=
p_access
;
p_sys
->
p_list_access
=
p_access
;
p_entry
->
i_size
=
p_access
->
info
.
i_size
;
p_entry
->
i_size
=
p_access
->
info
.
i_size
;
p_entry
->
psz_path
=
strdup
(
p_access
->
psz_path
);
p_entry
->
psz_path
=
strdup
(
p_access
->
psz_path
);
if
(
p_entry
->
psz_path
==
NULL
)
{
msg_Err
(
s
,
"Out of memory when duplicating p_access->psz_path"
);
free
(
p_entry
);
goto
error
;
}
TAB_APPEND
(
p_sys
->
i_list
,
p_sys
->
list
,
p_entry
);
TAB_APPEND
(
p_sys
->
i_list
,
p_sys
->
list
,
p_entry
);
msg_Dbg
(
p_access
,
"adding file `%s', ("
I64Fd
" bytes)"
,
msg_Dbg
(
p_access
,
"adding file `%s', ("
I64Fd
" bytes)"
,
p_entry
->
psz_path
,
p_access
->
info
.
i_size
);
p_entry
->
psz_path
,
p_access
->
info
.
i_size
);
...
@@ -302,6 +318,11 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -302,6 +318,11 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
psz_name
,
p_tmp
->
info
.
i_size
);
psz_name
,
p_tmp
->
info
.
i_size
);
p_entry
=
malloc
(
sizeof
(
access_entry_t
)
);
p_entry
=
malloc
(
sizeof
(
access_entry_t
)
);
if
(
p_entry
==
NULL
)
{
msg_Err
(
p_access
,
"Out of memory when allocating access_entry_t"
);
goto
error
;
}
p_entry
->
i_size
=
p_tmp
->
info
.
i_size
;
p_entry
->
i_size
=
p_tmp
->
info
.
i_size
;
p_entry
->
psz_path
=
psz_name
;
p_entry
->
psz_path
=
psz_name
;
TAB_APPEND
(
p_sys
->
i_list
,
p_sys
->
list
,
p_entry
);
TAB_APPEND
(
p_sys
->
i_list
,
p_sys
->
list
,
p_entry
);
...
@@ -313,7 +334,7 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -313,7 +334,7 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
if
(
psz_name
)
psz_name
++
;
if
(
psz_name
)
psz_name
++
;
}
}
}
}
if
(
psz_list
)
free
(
psz_list
);
FREENULL
(
psz_list
);
/* Peek */
/* Peek */
p_sys
->
i_peek
=
0
;
p_sys
->
i_peek
=
0
;
...
@@ -352,6 +373,12 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
...
@@ -352,6 +373,12 @@ stream_t *stream_AccessNew( access_t *p_access, vlc_bool_t b_quick )
p_sys
->
stream
.
i_offset
=
0
;
p_sys
->
stream
.
i_offset
=
0
;
p_sys
->
stream
.
i_tk
=
0
;
p_sys
->
stream
.
i_tk
=
0
;
p_sys
->
stream
.
p_buffer
=
malloc
(
STREAM_CACHE_SIZE
);
p_sys
->
stream
.
p_buffer
=
malloc
(
STREAM_CACHE_SIZE
);
if
(
p_sys
->
stream
.
p_buffer
==
NULL
)
{
msg_Err
(
s
,
"Out of memory when allocating stream cache (%d bytes)"
,
STREAM_CACHE_SIZE
);
goto
error
;
}
p_sys
->
stream
.
i_used
=
0
;
p_sys
->
stream
.
i_used
=
0
;
access2_Control
(
p_access
,
ACCESS_GET_MTU
,
access2_Control
(
p_access
,
ACCESS_GET_MTU
,
&
p_sys
->
stream
.
i_read_size
);
&
p_sys
->
stream
.
i_read_size
);
...
@@ -390,6 +417,10 @@ error:
...
@@ -390,6 +417,10 @@ error:
{
{
free
(
p_sys
->
stream
.
p_buffer
);
free
(
p_sys
->
stream
.
p_buffer
);
}
}
while
(
p_sys
->
i_list
>
0
)
free
(
p_sys
->
list
[
--
(
p_sys
->
i_list
)]
);
free
(
p_sys
->
list
);
free
(
psz_list
);
free
(
s
->
p_sys
);
free
(
s
->
p_sys
);
vlc_object_detach
(
s
);
vlc_object_detach
(
s
);
vlc_object_destroy
(
s
);
vlc_object_destroy
(
s
);
...
@@ -1488,7 +1519,7 @@ char * stream_ReadLine( stream_t *s )
...
@@ -1488,7 +1519,7 @@ char * stream_ReadLine( stream_t *s )
var_SetString
(
p_input
,
"subsdec-encoding"
,
"UTF-8"
);
var_SetString
(
p_input
,
"subsdec-encoding"
,
"UTF-8"
);
vlc_object_release
(
p_input
);
vlc_object_release
(
p_input
);
}
}
if
(
psz_encoding
)
free
(
psz_encoding
);
free
(
psz_encoding
);
}
}
}
}
...
@@ -1560,6 +1591,11 @@ char * stream_ReadLine( stream_t *s )
...
@@ -1560,6 +1591,11 @@ char * stream_ReadLine( stream_t *s )
{
{
i_data
=
(
psz_eol
-
(
char
*
)
p_data
)
+
1
;
i_data
=
(
psz_eol
-
(
char
*
)
p_data
)
+
1
;
p_line
=
realloc
(
p_line
,
i_line
+
i_data
+
s
->
i_char_width
);
/* add \0 */
p_line
=
realloc
(
p_line
,
i_line
+
i_data
+
s
->
i_char_width
);
/* add \0 */
if
(
!
p_line
)
{
msg_Err
(
s
,
"Out of memory when reallocating p_line"
);
goto
error
;
}
i_data
=
stream_Read
(
s
,
&
p_line
[
i_line
],
i_data
);
i_data
=
stream_Read
(
s
,
&
p_line
[
i_line
],
i_data
);
if
(
i_data
<=
0
)
break
;
/* Hmmm */
if
(
i_data
<=
0
)
break
;
/* Hmmm */
i_line
+=
i_data
-
s
->
i_char_width
;
/* skip \n */
;
i_line
+=
i_data
-
s
->
i_char_width
;
/* skip \n */
;
...
@@ -1571,6 +1607,11 @@ char * stream_ReadLine( stream_t *s )
...
@@ -1571,6 +1607,11 @@ char * stream_ReadLine( stream_t *s )
/* Read data (+1 for easy \0 append) */
/* Read data (+1 for easy \0 append) */
p_line
=
realloc
(
p_line
,
i_line
+
STREAM_PROBE_LINE
+
s
->
i_char_width
);
p_line
=
realloc
(
p_line
,
i_line
+
STREAM_PROBE_LINE
+
s
->
i_char_width
);
if
(
!
p_line
)
{
msg_Err
(
s
,
"Out of memory when reallocating p_line"
);
goto
error
;
}
i_data
=
stream_Read
(
s
,
&
p_line
[
i_line
],
STREAM_PROBE_LINE
);
i_data
=
stream_Read
(
s
,
&
p_line
[
i_line
],
STREAM_PROBE_LINE
);
if
(
i_data
<=
0
)
break
;
/* Hmmm */
if
(
i_data
<=
0
)
break
;
/* Hmmm */
i_line
+=
i_data
;
i_line
+=
i_data
;
...
@@ -1594,7 +1635,11 @@ char * stream_ReadLine( stream_t *s )
...
@@ -1594,7 +1635,11 @@ char * stream_ReadLine( stream_t *s )
/* iconv */
/* iconv */
psz_new_line
=
malloc
(
i_line
);
psz_new_line
=
malloc
(
i_line
);
if
(
psz_new_line
==
NULL
)
{
msg_Err
(
s
,
"Out of memory when allocating psz_new_line"
);
goto
error
;
}
i_in
=
i_out
=
(
size_t
)
i_line
;
i_in
=
i_out
=
(
size_t
)
i_line
;
p_in
=
p_line
;
p_in
=
p_line
;
p_out
=
psz_new_line
;
p_out
=
psz_new_line
;
...
@@ -1619,8 +1664,10 @@ char * stream_ReadLine( stream_t *s )
...
@@ -1619,8 +1664,10 @@ char * stream_ReadLine( stream_t *s )
return
p_line
;
return
p_line
;
}
}
error:
/* We failed to read any data, probably EOF */
/* We failed to read any data, probably EOF */
if
(
p_line
)
free
(
p_line
);
free
(
p_line
);
if
(
s
->
conv
!=
(
vlc_iconv_t
)(
-
1
)
)
vlc_iconv_close
(
s
->
conv
);
if
(
s
->
conv
!=
(
vlc_iconv_t
)(
-
1
)
)
vlc_iconv_close
(
s
->
conv
);
return
NULL
;
return
NULL
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment