summaryrefslogtreecommitdiff
path: root/src/input/libreal/sdpplin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/libreal/sdpplin.c')
-rw-r--r--src/input/libreal/sdpplin.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/input/libreal/sdpplin.c b/src/input/libreal/sdpplin.c
index 5dbff3812..91aa133fa 100644
--- a/src/input/libreal/sdpplin.c
+++ b/src/input/libreal/sdpplin.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: sdpplin.c,v 1.4 2003/12/09 00:02:30 f1rmb Exp $
+ * $Id: sdpplin.c,v 1.5 2004/04/23 21:59:04 miguelfreitas Exp $
*
* sdp/sdpplin parser.
*
@@ -94,13 +94,19 @@ static char *b64_decode(const char *in, char *out, int *size)
static char *nl(char *data) {
- return strchr(data,'\n')+1;
+ char *nlptr = (data) ? strchr(data,'\n') : NULL;
+ return (nlptr) ? nlptr + 1 : NULL;
}
static int filter(const char *in, const char *filter, char **out) {
int flen=strlen(filter);
- int len=strchr(in,'\n')-in;
+ int len;
+
+ if (!in)
+ return 0;
+
+ len = (strchr(in,'\n')) ? strchr(in,'\n')-in : strlen(in);
if (!strncmp(in,filter,flen))
{
@@ -133,7 +139,7 @@ static sdpplin_stream_t *sdpplin_parse_stream(char **data) {
}
*data=nl(*data);
- while (**data && *data[0]!='m') {
+ while (*data && **data && *data[0]!='m') {
handled=0;
@@ -232,7 +238,7 @@ sdpplin_t *sdpplin_parse(char *data) {
int handled;
int len;
- while (*data) {
+ while (data && *data) {
handled=0;