HomeFreeBSD

Avoid unaligned memory accesses when encoding netbios names in libsmb.

Description

Avoid unaligned memory accesses when encoding netbios names in libsmb.

The current code for encoding a netbios name converts each byte to a 16-bit
value and stores the result by casting a char* to u_short*, resulting in
alignment faults on strict-alignment platforms.

This change reimplements the encoding routine using only byte accesses to
memory. There is no particular reason to work with 16-bit values just
because the encoding process creates two bytes of output for every byte of
input. Working a byte at at time also avoids endian problems for big-endian
platforms.

PR: 180438
PR: 189415
Differential Revision: https://reviews.freebsd.org/D4622

Details

Provenance
ianAuthored on Dec 21 2015, 5:17 PM
Parents
rG86acfcf87840: Simplify _map_v4v6_address().
Branches
Unknown
Tags
Unknown

Event Timeline