• Nils Goroll's avatar
    Add VSA_getsockname() · 2b63ee2d
    Nils Goroll authored
    Flexelint on Linux exhibits exactly the problem described by phk in
    his rant at the top of vsa.c, quote:
    
    	Do I need to tell you that static code analysis tools have a
    	really hard time coping with (struct suckaddr_storage), and
    	that they give a lot of false negatives which confuse people ?
    
    One instance of this issue:
    
    --- Module:   cache/cache_acceptor.c (C)
                                                   _
     #... _assert(!!((getsockname(sp->fd, (void*)&ss, &sl)) == 0)) /*lint -restore *
     #... getsockname(sp->fd, (void*)&ss, &sl)) == 0); } while (0)
    	AZ(getsockname(sp->fd, (void*)&ss, &sl));
    cache/cache_acceptor.c  330  Error 64: Type mismatch (arg. no. 2) (union
        __SOCKADDR_ARG = void *)
                                     _
     #... SA_Build(sa, &ss, sl)) != 0); } while (0)
    	AN(VSA_Build(sa, &ss, sl));
    cache/cache_acceptor.c  332  Warning 603: Symbol 'ss' (line 318) not
        initialized
    cache/cache_acceptor.c  318  Info 830: Location cited in prior message
                                                                      _
    			i = accept(ls->sock, (void*)&wa.acceptaddr,
    cache/cache_acceptor.c  458  Error 64: Type mismatch (arg. no. 2) (union
        __SOCKADDR_ARG = void *)
    
    There is one more in cache/cache_backend_probe.c
    
    As the purpose of VSA is to avoid exactly this kind of trouble, we
    provide a VSA-wrapper for getsockname.
    2b63ee2d
Name
Last commit
Last update
..
cache.h Loading commit data...
cache_acceptor.c Loading commit data...
cache_backend.c Loading commit data...
cache_backend.h Loading commit data...
cache_backend_probe.c Loading commit data...
cache_ban.c Loading commit data...
cache_ban.h Loading commit data...
cache_ban_build.c Loading commit data...
cache_ban_lurker.c Loading commit data...
cache_busyobj.c Loading commit data...
cache_cli.c Loading commit data...
cache_deliver_proc.c Loading commit data...
cache_director.c Loading commit data...
cache_director.h Loading commit data...
cache_esi.h Loading commit data...
cache_esi_deliver.c Loading commit data...
cache_esi_fetch.c Loading commit data...
cache_esi_parse.c Loading commit data...
cache_expire.c Loading commit data...
cache_fetch.c Loading commit data...
cache_fetch_proc.c Loading commit data...
cache_filter.h Loading commit data...
cache_gzip.c Loading commit data...
cache_hash.c Loading commit data...
cache_http.c Loading commit data...
cache_lck.c Loading commit data...
cache_main.c Loading commit data...
cache_mempool.c Loading commit data...
cache_obj.c Loading commit data...
cache_obj.h Loading commit data...
cache_objhead.h Loading commit data...
cache_panic.c Loading commit data...
cache_pool.c Loading commit data...
cache_pool.h Loading commit data...
cache_range.c Loading commit data...
cache_req.c Loading commit data...
cache_req_body.c Loading commit data...
cache_req_fsm.c Loading commit data...
cache_rfc2616.c Loading commit data...
cache_session.c Loading commit data...
cache_shmlog.c Loading commit data...
cache_tcp_pool.c Loading commit data...
cache_tcp_pool.h Loading commit data...
cache_transport.h Loading commit data...
cache_varnishd.h Loading commit data...
cache_vary.c Loading commit data...
cache_vcl.c Loading commit data...
cache_vcl.h Loading commit data...
cache_vgz.h Loading commit data...
cache_vpi.c Loading commit data...
cache_vrt.c Loading commit data...
cache_vrt_filter.c Loading commit data...
cache_vrt_priv.c Loading commit data...
cache_vrt_re.c Loading commit data...
cache_vrt_var.c Loading commit data...
cache_vrt_vcl.c Loading commit data...
cache_vrt_vmod.c Loading commit data...
cache_wrk.c Loading commit data...
cache_ws.c Loading commit data...