• C
    libceph: fix undefined behavior when using snprintf() · 1ec3911d
    Cong Ding 提交于
    The variable "str" is used as both the source and destination in
    function snprintf(), which is undefined behavior based on C11. The
    original description in C11 is:
    	"If copying takes place between objects that
    	overlap, the behavior is undefined."
    
    And, the function of ceph_osdmap_state_str() is to return the osdmap
    state, so it should return "doesn't exist" when all the conditions
    are not satisfied. I fix it in this patch.
    
    [elder@inktank.com: shortened the commit message]
    Signed-off-by: NCong Ding <dinggnu@gmail.com>
    Reviewed-by: NAlex Elder <elder@inktank.com>
    1ec3911d
osdmap.c 28.5 KB