diff options
| author | Yang Tse <yangsita@gmail.com> | 2010-02-15 17:40:35 +0000 | 
|---|---|---|
| committer | Yang Tse <yangsita@gmail.com> | 2010-02-15 17:40:35 +0000 | 
| commit | d5b2d8e0810d2f6fb6e45d583cd9dea87bf40259 (patch) | |
| tree | b9af7a9be2b8e68e542c3d0b1a2211568f0fab8c /tests/server/rtspd.c | |
| parent | 4b43d18c4a733b1c47ccab481502a7d84fd07691 (diff) | |
fix compiler warning: conversion from "long" to "size_t" may lose sign
Diffstat (limited to 'tests/server/rtspd.c')
| -rw-r--r-- | tests/server/rtspd.c | 17 | 
1 files changed, 14 insertions, 3 deletions
| diff --git a/tests/server/rtspd.c b/tests/server/rtspd.c index efa0e0b4e..c10b829aa 100644 --- a/tests/server/rtspd.c +++ b/tests/server/rtspd.c @@ -578,10 +578,21 @@ static int ProcessRequest(struct httprequest *req)           request including the body before we return. If we've been told to           ignore the content-length, we will return as soon as all headers           have been received */ -      size_t cl = strtol(line+15, &line, 10); -      req->cl = cl - req->skip; +      char *endptr; +      char *ptr = line + 15; +      unsigned long clen = 0; +      while(*ptr && (' ' == *ptr)) +        ptr++; +      clen = strtoul(ptr, &endptr, 10); +      if((ptr == endptr) || ERRNO) { +        /* this assumes that a zero Content-Length is valid */ +        logmsg("Found invalid Content-Length: (%s) in the request", ptr); +        req->open = FALSE; /* closes connection */ +        return 1; /* done */ +      } +      req->cl = clen - req->skip; -      logmsg("Found Content-Length: %zu in the request", cl); +      logmsg("Found Content-Length: %lu in the request", clen);        if(req->skip)          logmsg("... but will abort after %zu bytes", req->cl);        break; | 
