From 27db0450952b356c7aa98296f5b03317d8c15a70 Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Tue, 7 Oct 2008 18:28:24 +0000
Subject: [PATCH] fix compiler warning: dereferencing type-punned pointer will
 break strict-aliasing rules

---
 lib/getinfo.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/getinfo.c b/lib/getinfo.c
index 6f8ebb87e1..c8841637e5 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -78,6 +78,11 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
   struct curl_slist **param_slistp=NULL;
   int type;
 
+  union {
+    struct curl_certinfo * to_certinfo;
+    struct curl_slist    * to_slist;
+  } ptr;
+
   if(!data)
     return CURLE_BAD_FUNCTION_ARGUMENT;
 
@@ -220,7 +225,8 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
   case CURLINFO_CERTINFO:
     /* Return the a pointer to the certinfo struct. Not really an slist
        pointer but we can pretend it is here */
-    *param_slistp = (struct curl_slist *)&data->info.certs;
+    ptr.to_certinfo = &data->info.certs;
+    *param_slistp = ptr.to_slist;
     break;
   default:
     return CURLE_BAD_FUNCTION_ARGUMENT;
-- 
GitLab