Fix regression in DNS client

Calling FreeResolvConf() would crash, due to a recent change from
yesterday where free_s() was removed.
This commit is contained in:
Justine Tunney 2023-05-10 23:27:10 -07:00
parent 8d24a18c62
commit cba15bc77a
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
2 changed files with 16 additions and 32 deletions

View file

@ -21,6 +21,7 @@
#include "libc/fmt/fmt.h"
#include "libc/intrin/pushpop.h"
#include "libc/macros.internal.h"
#include "libc/mem/mem.h"
#include "libc/runtime/runtime.h"
#include "libc/sock/sock.h"
#include "libc/sock/struct/sockaddr.h"
@ -66,3 +67,18 @@ const struct ResolvConf *GetResolvConf(void) {
pthread_mutex_unlock(&init->lock);
return g_resolvconf;
}
/**
* Frees resolv.conf data structure populated by ParseResolvConf().
*/
void FreeResolvConf(struct ResolvConf **rvp) {
if (*rvp) {
if ((*rvp)->nameservers.p != g_resolvconf_init.nameservers) {
free((*rvp)->nameservers.p);
}
if (*rvp != &g_resolvconf_init.rv) {
free(*rvp);
}
*rvp = 0;
}
}