From ae6bc4dd64e149270a86d649c92728432a50945f Mon Sep 17 00:00:00 2001
From: Alexander Neumann <alexander.neumann@redteam-pentesting.de>
Date: Fri, 4 Mar 2022 10:38:10 +0100
Subject: [PATCH] tun/netstack: check error returned by SetDeadline()

Signed-off-by: Alexander Neumann <alexander.neumann@redteam-pentesting.de>
[Jason: don't wrap deadline error.]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 tun/netstack/tun.go | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tun/netstack/tun.go b/tun/netstack/tun.go
index ebdd5f1..8b1bb7f 100644
--- a/tun/netstack/tun.go
+++ b/tun/netstack/tun.go
@@ -690,7 +690,10 @@ func (tnet *Net) exchange(ctx context.Context, server netip.Addr, q dnsmessage.Q
 			return dnsmessage.Parser{}, dnsmessage.Header{}, err
 		}
 		if d, ok := ctx.Deadline(); ok && !d.IsZero() {
-			c.SetDeadline(d)
+			err := c.SetDeadline(d)
+			if err != nil {
+				return dnsmessage.Parser{}, dnsmessage.Header{}, err
+			}
 		}
 		var p dnsmessage.Parser
 		var h dnsmessage.Header