[SyncEvolution] SyncEvolution 1.4 released

Patrick Ohly patrick.ohly at intel.com
Wed Feb 19 14:17:29 UTC 2014


On Wed, 2014-02-19 at 14:05 +0100, Tino Mettler wrote:
> Hi Patrick,
> 
> as the libsynthesis version was not bumped, am I right that
> syncevolution 1.4 is compatible with libsynthesis from
> libsynthesis_3.4.0.47+syncevolution-1-3-99-6?

Correct. There have been some changes and fixes, but none of them are
really important. Probably the most important one is the "support
sending NumberOfChanges" change, because that ensures that progress in
percent can be reported for a local sync.

Details:

$ git log libsynthesis_3.4.0.47+syncevolution-1-3-99-6..libsynthesis_3.4.0.47+syncevolution-1-4

commit 17087c460472faeed2dc6679e186eee847b845a7
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Mon Jan 27 16:33:34 2014 +0100

    debuglogger: close log file on exec
    
    When using fork+exec on Linux, open files get inherited by the child
    process unless explicitly marked as FD_CLOEXEC. We should set that
    flag at least for files which remain open (like the log file when
    dbgflush_openclose is not active). A truly thread-safe approach would
    have to use open(O_CLOEXEC), but setting the flag later is sufficient
    for us.
    
    This change is limited to Linux to avoid interfering with other
    platforms.

commit 60c14f7816f674297bde11476d15f7a729185e94
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Fri Jan 24 08:44:33 2014 +0100

    binfileclient: support sending NumberOfChanges
    
    In a binfileclient, the NumberOfChanges value became available to late
    to get included in the TSyncCommand when constructing that
    command. Even when it got calculated later in
    TBinfileImplDS::changeLogPreflight() it never got sent to the server.
    
    Making the value available earlier is not possible (changeLogPreflight
    depends on information calculated after generating the sync command),
    but it is possible to re-check the NumberOfChanges before continuing
    the sync in the next message. The result is a sync where the first
    several items are sent without NumberOfChanges, then the next message
    has NumberOfChanges.

commit cbd03b0516c5a699604ef278781e9d458fad6530
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 05:13:13 2014 -0800

    sysync_b64: avoid false positive with scan-build
    
    clang's scan-build warned:
      Result of 'malloc' is converted to a pointer of type 'uInt8', which is
      incompatible with sizeof operand type 'char'.
    
    This is not a real problem, because it is safe to assume that sizeof(uInt8) ==
    sizeof(char). But better be explicit about what the code is supposed to do and
    use sizeof(uInt8).

commit 07db39df146a63fcc3a2cbf9295b99d67f386458
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 05:09:55 2014 -0800

    syncsession: track pointer
    
    clang's scan-build reported a "use after free" error. Probably
    a false positive, caused by clang not knowing that a function
    call will always return the same value. Nevertheless it is safer
    to really track whether the pointer is still non-null, in particular
    because there are exception handlers which might do a double free.

commit 4265685eb93d28bcb6e21853131b51a89291bd5b
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 05:07:28 2014 -0800

    SyncML TK: fix invalid memory allocation
    
    Some unused code allocated memory sufficient for only for a *pointer* instead
    a *structure* as it should have done. Found by clang's scan-build, for example:
    
       Result of 'malloc' is converted to a pointer of type 'struct
       sml_filter_s', which is incompatible with sizeof operand type 'SmlFilterPtr_t'

commit 38970617f539e6b08be4b2c81a211952aa52ced9
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 05:03:24 2014 -0800

    enginesessiondispatch: additional NULL check
    
    HandleDecodingException() checks for aSessionP for NULL in some places,
    but not all. Found by clang.
    
    Let's assume that the function might get called with a NULL pointer
    and hence check for that everywhere.

commit d89d803eee538bada7d7b2acd81ec28d28a83619
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 05:01:01 2014 -0800

    binfileimplclient: simplify code flow analysis
    
    When the first if check fails, the second one also fails and
    thus it and its code only need to be executed when the first
    one succeeds.
    
    This is irrelevant for performance. The reason for changing it is
    that it avoids a false positive in cppcheck.

commit c018d7a53b42e84fe8a6a124a9cebfd147d4b940
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Wed Jan 8 04:58:46 2014 -0800

    fix delete/delete [] mistakes
    
    clang's scan-build found some more cases where delete was used
    instead of delete [].

commit fc91177e218f5d6fcf9f80d34842bda4e658a226
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Mon Jan 6 23:45:32 2014 -0800

    binfilebase: avoid virtual methods in destructor
    
    cppcheck complains about the virtual method call to platformFileIsOpen that
    happens indirectly inside the destructor if the instance has not been
    deconstructed. Because all derived classes must deconstruct the base class
    first (mentioned in the binfilebase comments), the base class destructor
    should never have to do anything. If it did, the program would crash.
    
    Therefore it is better to not even attempt to do anything in the destructor.

commit b2bede775fe523c30c6b14366b49edac1384d3ff
Author: Patrick Ohly <patrick.ohly at intel.com>
Date:   Mon Jan 6 23:40:51 2014 -0800

    fix new [] and delete mismatch
    
    Static code analysis with cppcheck found some cases where an array
    was allocated with new [] and freed with a simple delete instead of
    delete [].

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.






More information about the SyncEvolution mailing list