Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    be811c4b
    res_pjsip_caller_id: Fix segfault when replacing rpid or pai header · be811c4b
    George Joseph authored
    If the PJSIP_HEADER dialplan function adds a PAI or RPID header and send_rpid
    or send_pai is set, res_pjsip_caller_id attemps to retrieve, parse and modify
    the header added by the dialplan function.  Since the header added by the
    dialplan function is generic string, there are no virtual functions to parse
    the uri and we get a segfault when we try.  Since the modify, was really only
    an overwrite, we now just delete the old header if it was type PJSIP_H_OTHER
    and recreate it.
    
    This raises a question for another time though:  What should happen with
    duplicate headers?  Right now res_pjsip_header_funcs doesn't check for dups
    so if it's session supplement is loaded after res_pjsip_caller_id's (or any
    other module that adds headers), there'll be dups in the message.
    
    ASTERISK-25337 #close
    
    Change-Id: I5e296b52d30f106b822c0eb27c4c2b0e0f71c7fa
    be811c4b
    History
    res_pjsip_caller_id: Fix segfault when replacing rpid or pai header
    George Joseph authored
    If the PJSIP_HEADER dialplan function adds a PAI or RPID header and send_rpid
    or send_pai is set, res_pjsip_caller_id attemps to retrieve, parse and modify
    the header added by the dialplan function.  Since the header added by the
    dialplan function is generic string, there are no virtual functions to parse
    the uri and we get a segfault when we try.  Since the modify, was really only
    an overwrite, we now just delete the old header if it was type PJSIP_H_OTHER
    and recreate it.
    
    This raises a question for another time though:  What should happen with
    duplicate headers?  Right now res_pjsip_header_funcs doesn't check for dups
    so if it's session supplement is loaded after res_pjsip_caller_id's (or any
    other module that adds headers), there'll be dups in the message.
    
    ASTERISK-25337 #close
    
    Change-Id: I5e296b52d30f106b822c0eb27c4c2b0e0f71c7fa