0
0
mirror of https://github.com/ecki/net-tools.git synced 2024-11-13 14:09:25 +00:00
net-tools/lib/frame.c
Mike Frysinger c17ec95072 lib: frame: avoid casting char* to short*
This might end up violating alignment requirements, so memcpy the
variable through a short variable instead.  For most systems, this
will optimize into the same code anyways, and for the rest, we need
to do it this way to avoid unaligned accesses crashing.

URL: https://bugs.gentoo.org/558436
2015-08-25 22:53:59 -04:00

61 lines
1.5 KiB
C

/*
* lib/frame.c This file contains the Frame Relay support.
*
* Version: $Id: frame.c,v 1.4 2000/03/05 11:26:02 philip Exp $
*
* Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
*
* Author: Mike McLagan <mike.mclagan@linux.org>
*
* Changes:
*
*962303 {0.01} Mike McLagan : creation
*960413 {0.02} Bernd Eckenfels : included in net-lib
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*/
#include "config.h"
#if HAVE_HWFR
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if_arp.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include "net-support.h"
#include "pathnames.h"
static const char *pr_dlci(const char *ptr)
{
static char buf[12];
short i;
memcpy(&i, ptr, sizeof(i));
snprintf(buf, sizeof(buf), "%i", i);
return (buf);
}
struct hwtype dlci_hwtype =
{
"dlci", NULL, /*"Frame Relay DLCI", */ ARPHRD_DLCI, 3,
pr_dlci, NULL, NULL, 0
};
struct hwtype frad_hwtype =
{
"frad", NULL, /*"Frame Relay Access Device", */ ARPHRD_FRAD, 0,
NULL, NULL, NULL, 0
};
#endif /* HAVE_HWFR */