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
Differential Revision
D4622: Avoid unaligned memory accesses when encoding netbios names in mount_smbfs
Parents
rS292551: MFC r277735 (by royger):
Branches
Unknown
Tags
Unknown