Navigation


Changeset 1414:f6f12521c2aa in freeDiameter for include


Ignore:
Timestamp:
Feb 18, 2020, 5:01:49 PM (4 years ago)
Author:
Luke Mewburn <luke@mewburn.net>
Branch:
default
Phase:
public
committer:
Luke Mewburn <luke@mewburn.net> 1582020002 -39600
Message:

Fix strict-aliasing warnings with gcc 4.8

Rewrite IN6_ADDR_V4MAP() to not rely upon aliasing rules.
Add test for IN6_ADDR_V4MAP() and IN6_ADDR_V4UNMAP().

Rewrite MD5Final() to not rely upon aliasing rules. (Not tested)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/freeDiameter/libfdproto.h

    r1407 r1414  
    690690/* create a V4MAPPED address */
    691691#define IN6_ADDR_V4MAP( a6, a4 ) {                      \
    692         ((uint32_t *)(a6))[0] = 0;                      \
    693         ((uint32_t *)(a6))[1] = 0;                      \
    694         ((uint32_t *)(a6))[2] = htonl(0xffff);          \
    695         ((uint32_t *)(a6))[3] = (uint32_t)(a4);         \
     692        memset(&(*a6)[0], 0, 10);                       \
     693        (*a6)[10] = 0xff;                               \
     694        (*a6)[11] = 0xff;                               \
     695        memcpy(&(*a6)[12], &a4, 4);                     \
    696696}
    697697
Note: See TracChangeset for help on using the changeset viewer.