changeset 806:12a3139a2baf

sock: use atomic_cas_ptr correctly This bug was caused by incorrect documentation (already fixed). It resulted in us freeing the name on successful CAS and caching the freed pointer. Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Fri, 10 Apr 2020 12:27:10 -0400
parents 6e72f4b462c8
children d246782c5b8b
files sock.c
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/sock.c	Fri Apr 10 12:25:17 2020 -0400
+++ b/sock.c	Fri Apr 10 12:27:10 2020 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2019 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
+ * Copyright (c) 2016-2020 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -60,7 +60,7 @@
 		goto unknown;
 	}
 
-	if (atomic_cas_ptr(&cached, NULL, name) != name)
+	if (atomic_cas_ptr(&cached, NULL, name) != NULL)
 		free(name);
 
 	return cached;