Initialize ef so that it's easier for gcc to analyze that it's correct.
diff --git a/lib/zip_extra_field.c b/lib/zip_extra_field.c
index fee7b52..6ec2db3 100644
--- a/lib/zip_extra_field.c
+++ b/lib/zip_extra_field.c
@@ -214,7 +214,7 @@
     const zip_uint8_t *p;
     zip_uint16_t fid, flen;
 
-    ef_head = NULL;
+    ef_head = ef = NULL;
     for (p=data; p<data+len; p+=flen) {
 	if (p+4 > data+len) {
 	    _zip_error_set(error, ZIP_ER_INCONS, 0);