[Devel] Compiler Warning
Daniel-Constantin Mierla
daniel at voice-system.ro
Sun Nov 20 14:55:23 CET 2005
On 11/16/05 16:35, Norman Brandinger wrote:
> A recent patch posted by Anad (nicer compiling) produces a compile
> without alot of messages. Compiler warning are still produced. I
> noted that there was a warning in items.c line 925. Below are some
> possible issues that I've uncovered in regard to this.
>
> 1. In parser/parse_content.h the comments state that the value
> returned is an integer, however, it's cast as a long. Either the
> comment or the code should be reviewed.
> 2. Both get_content_type() and get_content_length() are set to the
> same value. This probably isn't what was intended.
> 3. In parser/msg_parser.c below, the DBG statement wants to display
> the content length, however, the value that is being used is
> hdr->parsed, not hdr->body.len.
>
> It appears "on the surface" that there may be some problems here, it's
> also possible that code was intentionally written this way. Can one
> of the developers confirm if there is a problem.
it was written this way, the integer value of the content header is
stored over the 'void* parsed' attribute. The cast to 'long' comes some
time to ensure same size as 'void*'.
Cheers,
Daniel
>
> Regards,
> Norm
>
>
>
> parser/parse_content.h
>
> /*
> * returns the content-length value of a sip_msg as an integer
> */
> #define get_content_length(_msg_)
> ((long)((_msg_)->content_length->parsed))
>
>
> /*
> * returns the content-type value of a sip_msg as an integer
> */
> #define get_content_type(_msg_)
> ((int)(long)((_msg_)->content_type->parsed))
>
>
>
>
> parser/msg_parser.c
>
> case HDR_CONTENTLENGTH_T:
> hdr->body.s=tmp;
> tmp=parse_content_length(tmp,end, &integer);
> if (tmp==0){
> LOG(L_ERR, "ERROR:get_hdr_field: bad
> content_length header\n");
> goto error;
> }
> hdr->parsed=(void*)(long)integer;
> hdr->body.len=tmp-hdr->body.s;
> DBG("DEBUG: get_hdr_body : content_length=%d\n",
> (int)(long)hdr->parsed);
> break;
>
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel
>
More information about the Devel
mailing list