git: fcaf15e54162 - main - libnetmap: fix error path in nmport_extmem_from_file

From: Jose Luis Duran <jlduran_at_FreeBSD.org>
Date: Mon, 13 Jul 2026 12:26:34 UTC
The branch main has been updated by jlduran:

URL: https://cgit.FreeBSD.org/src/commit/?id=fcaf15e54162fe14483fdf4ac28c67c51e424441

commit fcaf15e54162fe14483fdf4ac28c67c51e424441
Author:     Jose Luis Duran <jlduran@FreeBSD.org>
AuthorDate: 2026-07-13 12:23:14 +0000
Commit:     Jose Luis Duran <jlduran@FreeBSD.org>
CommitDate: 2026-07-13 12:23:14 +0000

    libnetmap: fix error path in nmport_extmem_from_file
    
    Reviewed by:    zlei, vmaffione
    Obtained from:  https://github.com/luigirizzo/netmap/commit/b52a2bcae35e56548acfb0849b248a1e4b0c0c3b
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D58150
---
 lib/libnetmap/nmport.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/libnetmap/nmport.c b/lib/libnetmap/nmport.c
index ec9c6136f0f8..c892c94db32e 100644
--- a/lib/libnetmap/nmport.c
+++ b/lib/libnetmap/nmport.c
@@ -198,6 +198,7 @@ nmport_extmem_from_file(struct nmport_d *d, const char *fname)
 		errno = ENOMEM;
 		goto fail;
 	}
+	clnup->up.cleanup = NULL;
 
 	fd = open(fname, O_RDWR);
 	if (fd < 0) {
@@ -215,6 +216,7 @@ nmport_extmem_from_file(struct nmport_d *d, const char *fname)
 		goto fail;
 	}
 	close(fd);
+	fd = -1;
 
 	clnup->p = p;
 	clnup->size = mapsize;
@@ -230,7 +232,7 @@ fail:
 	if (fd >= 0)
 		close(fd);
 	if (clnup != NULL) {
-		if (clnup->p != MAP_FAILED)
+		if (clnup->up.cleanup != NULL)
 			nmport_pop_cleanup(d);
 		else
 			nmctx_free(ctx, clnup);