• D
    Fix crash on events due to allocation errors · 675464b1
    Daniel Veillard 提交于
    remoteRelayDomainEventBlockJob, remoteRelayDomainEventIOError,
    remoteRelayDomainEventIOErrorReason and remoteRelayDomainEventGraphics
    were using const string directly in rpc structure, before calling
    remoteDispatchDomainEventSend(). But that routine now frees up all
    the pointed allocated memory from the rpc structure and we end up
    with a double free.
    This now strdup() all the strings passed and provide mem_error goto
    labels to be used when an allocation error occurs.
    Note that the cleanup isn't completely finished because all relaying
    function also call make_nonnull_domain() which also allocate a string
    and never handle the error case. This patches doesn't try to address
    this as this is only error correctness a priori and touches far more
    functions in this module:
    
    * daemon/remote.c: fix string allocations and memory error handling
      for remoteRelayDomainEventBlockJob, remoteRelayDomainEventIOError,
      remoteRelayDomainEventIOErrorReason and remoteRelayDomainEventGraphics
    675464b1
remote.c 101.7 KB