From: Joe Hershberger Date: Mon, 2 Jul 2018 19:47:47 +0000 (-0500) Subject: sandbox: eth-raw: Make sure descriptors are always initialized X-Git-Tag: v2018.09-rc1~26^2~29 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=50ed0ef832c55a7d088df3d96b7046cf6acf0ff6;p=oweals%2Fu-boot.git sandbox: eth-raw: Make sure descriptors are always initialized If we let descriptors equal 0, we can end up closing STDIN. Make sure they start out as -1. Signed-off-by: Joe Hershberger Reviewed-by: Simon Glass --- diff --git a/arch/sandbox/cpu/eth-raw-os.c b/arch/sandbox/cpu/eth-raw-os.c index 61f23ed210..4263d8829a 100644 --- a/arch/sandbox/cpu/eth-raw-os.c +++ b/arch/sandbox/cpu/eth-raw-os.c @@ -34,6 +34,7 @@ static int _raw_packet_start(const char *ifname, unsigned char *ethmac, int flags; /* Prepare device struct */ + priv->local_bind_sd = -1; priv->device = malloc(sizeof(struct sockaddr_ll)); if (priv->device == NULL) return -ENOMEM; @@ -103,6 +104,8 @@ static int _local_inet_start(struct eth_sandbox_raw_priv *priv) int one = 1; /* Prepare device struct */ + priv->local_bind_sd = -1; + priv->local_bind_udp_port = 0; priv->device = malloc(sizeof(struct sockaddr_in)); if (priv->device == NULL) return -ENOMEM; @@ -136,8 +139,6 @@ static int _local_inet_start(struct eth_sandbox_raw_priv *priv) strerror(errno)); return -errno; } - priv->local_bind_sd = -1; - priv->local_bind_udp_port = 0; return 0; }