Hello community,

here is the log from the commit of package libetpan for openSUSE:Factory 
checked in at 2018-10-04 19:02:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libetpan (Old)
 and      /work/SRC/openSUSE:Factory/.libetpan.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libetpan"

Thu Oct  4 19:02:18 2018 rev:26 rq:639879 version:1.9.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libetpan/libetpan.changes        2018-01-31 
19:53:42.164424017 +0100
+++ /work/SRC/openSUSE:Factory/.libetpan.new/libetpan.changes   2018-10-04 
19:02:25.651144528 +0200
@@ -1,0 +2,9 @@
+Fri Sep 21 21:01:32 UTC 2018 - [email protected]
+
+- update to version 1.9.1
+  * Fixed some build issues for Visual Studio
+  * Fixes for GnuTLS
+  * Various bug fixes
+- Remove libetpan-1.6-openssl11.patch, fixed upstream
+
+-------------------------------------------------------------------

Old:
----
  1.8.tar.gz
  libetpan-1.6-openssl11.patch

New:
----
  1.9.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libetpan.spec ++++++
--- /var/tmp/diff_new_pack.6GQluy/_old  2018-10-04 19:02:26.967143144 +0200
+++ /var/tmp/diff_new_pack.6GQluy/_new  2018-10-04 19:02:26.967143144 +0200
@@ -12,22 +12,20 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define sover 20
 
 Name:           libetpan
-Version:        1.8
+Version:        1.9.1
 Release:        0
 Summary:        Mail Handling Library
 License:        BSD-3-Clause
 Group:          Development/Libraries/C and C++
 Url:            http://www.etpan.org/libetpan.html
 Source0:        
https://github.com/dinhviethoa/libetpan/archive/%{version}.tar.gz
-# PATCH-FIX-UPSTREAM -- make autodetection and compilation work for OpenSSL 1.1
-Patch0:         libetpan-1.6-openssl11.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  cyrus-sasl-devel
@@ -72,7 +70,6 @@
 
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 touch README INSTALL COPYING 

++++++ 1.8.tar.gz -> 1.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/.gitignore new/libetpan-1.9.1/.gitignore
--- old/libetpan-1.8/.gitignore 2017-05-08 05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/.gitignore       2018-09-12 13:54:16.000000000 +0200
@@ -157,3 +157,6 @@
 /build-windows/Release
 /build-windows/x64/Debug
 /build-windows/x64/Release
+/build-windows/libetpan.VC.db
+/.vs
+/build-windows/.vs/libetpan/v15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/README.md new/libetpan-1.9.1/README.md
--- old/libetpan-1.8/README.md  2017-05-08 05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/README.md        2018-09-12 13:54:16.000000000 +0200
@@ -5,6 +5,8 @@
 It provides an API for C language.
 
 [![Build 
Status](https://travis-ci.org/dinhviethoa/libetpan.png?branch=master)](https://travis-ci.org/dinhviethoa/libetpan)
+[![Code Quality: 
Cpp](https://img.shields.io/lgtm/grade/cpp/g/dinhviethoa/libetpan.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dinhviethoa/libetpan/context:cpp)
+[![Total 
Alerts](https://img.shields.io/lgtm/alerts/g/dinhviethoa/libetpan.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/dinhviethoa/libetpan/alerts)
 
 ## Features
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/build-android/build.sh 
new/libetpan-1.9.1/build-android/build.sh
--- old/libetpan-1.8/build-android/build.sh     2017-05-08 05:27:35.000000000 
+0200
+++ new/libetpan-1.9.1/build-android/build.sh   2018-09-12 13:54:16.000000000 
+0200
@@ -1,8 +1,9 @@
 #!/bin/sh
 
-build_version=6
+build_version=7
 openssl_build_version=3
 cyrus_sasl_build_version=4
+iconv_build_version=1
 package_name=libetpan-android
 
 current_dir="`pwd`"
@@ -24,13 +25,20 @@
   ./build.sh
 fi
 
+if test ! -f 
"$current_dir/dependencies/iconv/iconv-android-$iconv_build_version.zip" ; then
+  echo Building ICONV first
+  cd "$current_dir/dependencies/iconv"
+  ./build.sh
+fi
+
 function build {
   rm -rf "$current_dir/obj"
   
   cd "$current_dir/jni"
   $ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM 
TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
     
OPENSSL_PATH="$current_dir/third-party/openssl-android-$openssl_build_version" \
-    
CYRUS_SASL_PATH="$current_dir/third-party/cyrus-sasl-android-$cyrus_sasl_build_version"
+    
CYRUS_SASL_PATH="$current_dir/third-party/cyrus-sasl-android-$cyrus_sasl_build_version"
 \
+    ICONV_PATH="$current_dir/third-party/iconv-android-$iconv_build_version"
 
   mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
   cp "$current_dir/obj/local/$TARGET_ARCH_ABI/libetpan.a" 
"$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
@@ -41,6 +49,7 @@
 cd "$current_dir/third-party"
 unzip -qo 
"$current_dir/dependencies/openssl/openssl-android-$openssl_build_version.zip"
 unzip -qo 
"$current_dir/dependencies/cyrus-sasl/cyrus-sasl-android-$cyrus_sasl_build_version.zip"
+unzip -qo 
"$current_dir/dependencies/iconv/iconv-android-$iconv_build_version.zip"
 
 cd "$current_dir/.."
 tar xzf "$current_dir/../build-mac/autogen-result.tar.gz"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libetpan-1.8/build-android/dependencies/iconv/.gitignore 
new/libetpan-1.9.1/build-android/dependencies/iconv/.gitignore
--- old/libetpan-1.8/build-android/dependencies/iconv/.gitignore        
1970-01-01 01:00:00.000000000 +0100
+++ new/libetpan-1.9.1/build-android/dependencies/iconv/.gitignore      
2018-09-12 13:54:16.000000000 +0200
@@ -0,0 +1,4 @@
+build-android/libiconv/*
+build-android/obj/*
+*.tar.gz
+*.tar
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libetpan-1.8/build-android/dependencies/iconv/build-android/jni/Android.mk 
new/libetpan-1.9.1/build-android/dependencies/iconv/build-android/jni/Android.mk
--- 
old/libetpan-1.8/build-android/dependencies/iconv/build-android/jni/Android.mk  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/libetpan-1.9.1/build-android/dependencies/iconv/build-android/jni/Android.mk
    2018-09-12 13:54:16.000000000 +0200
@@ -0,0 +1,26 @@
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := iconv
+LOCAL_CFLAGS := \
+  -Wno-multichar \
+  -DANDROID \
+  -DLIBDIR=\"\" \
+  -DBUILDING_LIBICONV \
+  -DIN_LIBRARY
+
+LOCAL_SRC_FILES := \
+  ../libiconv/libcharset/lib/localcharset.c \
+  ../libiconv/lib/iconv.c \
+  ../libiconv/lib/relocatable.c
+
+LOCAL_C_INCLUDES += \
+  $(LOCAL_PATH)/../libiconv/include \
+  $(LOCAL_PATH)/../libiconv/libcharset \
+  $(LOCAL_PATH)/../libiconv/lib \
+  $(LOCAL_PATH)/../libiconv/libcharset/include \
+  $(LOCAL_PATH)/../libiconv/srclib
+ 
+LOCAL_EXPORT_C_INCLUDES       := $(LOCAL_PATH)/../libiconv/include
+include $(BUILD_STATIC_LIBRARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libetpan-1.8/build-android/dependencies/iconv/build.sh 
new/libetpan-1.9.1/build-android/dependencies/iconv/build.sh
--- old/libetpan-1.8/build-android/dependencies/iconv/build.sh  1970-01-01 
01:00:00.000000000 +0100
+++ new/libetpan-1.9.1/build-android/dependencies/iconv/build.sh        
2018-09-12 13:54:16.000000000 +0200
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+version=1.15
+build_version=1
+package_name=iconv-android
+current_dir="`pwd`"
+
+if test "x$ANDROID_NDK" = x ; then
+  echo should set ANDROID_NDK before running this script.
+  exit 1
+fi
+
+function build {
+  cd "$current_dir/build-android" 
+  $ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM 
TARGET_ARCH_ABI=$TARGET_ARCH_ABI
+  mkdir -p "$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
+  cp "$current_dir/build-android/obj/local/$TARGET_ARCH_ABI/libiconv.a" 
"$current_dir/$package_name-$build_version/libs/$TARGET_ARCH_ABI"
+}
+
+if test ! -f $current_dir/$package_name-$build_version.zip; then
+  if test ! -f $current_dir/build-android/libiconv-$version.tar.gz; then
+    cd "$current_dir/build-android"
+    curl -O http://ftp.gnu.org/gnu/libiconv/libiconv-$version.tar.gz
+    cd ..
+  fi
+  
+  #rm -rf "$current_dir/build-android/libiconv"
+  if test ! -d $current_dir/build-android/libiconv; then
+    cd "$current_dir/build-android"
+       tar xzf "$current_dir/build-android/libiconv-$version.tar.gz"
+       mv -v "$current_dir/build-android/libiconv-$version" 
"$current_dir/build-android/libiconv"
+
+       cd "$current_dir/build-android/libiconv"
+       ./configure
+
+       # Disable HAVE_LANGINFO_CODESET
+       cd "$current_dir/build-android/libiconv/libcharset"
+       sed -i '.original' 's/HAVE_LANGINFO_CODESET 1/HAVE_LANGINFO_CODESET 
0/g' config.h
+
+       cd "$current_dir"
+  fi  
+
+  rm -rf "$current_dir/build-android/obj"
+  mkdir -p "$current_dir/$package_name-$build_version/libs/$arch_dir_name"
+  cp -r "$current_dir/build-android/libiconv/include" 
"$current_dir/$package_name-$build_version"
+
+  mkdir -p "$current_dir/$package_name-$build_version"
+
+  # Start building.
+  ANDROID_PLATFORM=android-16
+  archs="armeabi armeabi-v7a x86"
+  for arch in $archs ; do
+    TARGET_ARCH_ABI=$arch
+    build
+  done
+
+  ANDROID_PLATFORM=android-21
+  archs="arm64-v8a"
+  for arch in $archs ; do
+    TARGET_ARCH_ABI=$arch
+    build
+  done
+
+  cd "$current_dir"
+  zip -qry "$package_name-$build_version.zip" "$package_name-$build_version"
+  rm -rf "$package_name-$build_version"
+fi 
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/build-android/jni/Android.mk 
new/libetpan-1.9.1/build-android/jni/Android.mk
--- old/libetpan-1.8/build-android/jni/Android.mk       2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/build-android/jni/Android.mk     2018-09-12 
13:54:16.000000000 +0200
@@ -9,6 +9,11 @@
 $(error CYRUS_SASL_PATH must be set)
 endif
 
+
+ifeq ($(ICONV_PATH),)
+$(error ICONV_PATH must be set)
+endif
+
 src_files = \
 ./src/data-types/base64.c \
 ./src/data-types/carray.c \
@@ -123,7 +128,7 @@
 NDK_TOOLCHAIN_VERSION := clang
 LOCAL_MODULE := etpan
 LOCAL_SRC_FILES := $(addprefix ../../, $(src_files))
-LOCAL_CFLAGS += -DHAVE_CONFIG_H=1
+LOCAL_CFLAGS += -DHAVE_CONFIG_H=1 -DHAVE_ICONV=1
 c_includes = \
 src \
 src/data-types \
@@ -140,6 +145,6 @@
 
 LOCAL_C_INCLUDES = $(addprefix ../../, $(c_includes)) \
   $(LOCAL_PATH)/../include $(LOCAL_PATH)/../include/libetpan \
-  $(OPENSSL_PATH)/include $(CYRUS_SASL_PATH)/include
+  $(OPENSSL_PATH)/include $(CYRUS_SASL_PATH)/include $(ICONV_PATH)/include
 
 include $(BUILD_STATIC_LIBRARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/build-windows/stdbool.h 
new/libetpan-1.9.1/build-windows/stdbool.h
--- old/libetpan-1.8/build-windows/stdbool.h    2017-05-08 05:27:35.000000000 
+0200
+++ new/libetpan-1.9.1/build-windows/stdbool.h  1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-#define false 0
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/configure.ac 
new/libetpan-1.9.1/configure.ac
--- old/libetpan-1.8/configure.ac       2017-05-08 05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/configure.ac     2018-09-12 13:54:16.000000000 +0200
@@ -2,9 +2,9 @@
 # Process this file with autoconf to produce a configure script.
 
 m4_define([maj_version], [1])
-m4_define([min_version], [8])
-m4_define([mic_version], [0])
-m4_define([api_current], [21])
+m4_define([min_version], [9])
+m4_define([mic_version], [1])
+m4_define([api_current], [22])
 m4_define([api_revision], [0])
 m4_define([api_compatibility], [20])
 dnl API version
@@ -212,7 +212,7 @@
   AC_CHECK_HEADER(openssl/ssl.h, [
    AC_CHECK_LIB(rsaref, main, [SSLLIBS="-lrsaref"])
    AC_CHECK_LIB(crypto, main, [SSLLIBS="-lcrypto $SSLLIBS"], [], [$SSLLIBS])
-   AC_CHECK_LIB(ssl, SSL_library_init, with_openssl=yes, [], [$SSLLIBS])])
+   AC_CHECK_LIB(ssl, SSL_CTX_new, with_openssl=yes, [], [$SSLLIBS])])
   if test "x$with_openssl" != "xyes"; then
     CPPFLAGS="$OCPPFLAGS"
     LDFLAGS="$OLDFLAGS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/data-types/connect.c 
new/libetpan-1.9.1/src/data-types/connect.c
--- old/libetpan-1.8/src/data-types/connect.c   2017-05-08 05:27:35.000000000 
+0200
+++ new/libetpan-1.9.1/src/data-types/connect.c 2018-09-12 13:54:16.000000000 
+0200
@@ -190,7 +190,11 @@
  struct sockaddr_un sa;
  int s;
 
- if (!(memcpy(sa.sun_path, path, strlen(path)))) {
+ if (sizeof(sa.sun_path) <= strlen(path)) {
+    return -1;
+ }
+
+ if (!(memcpy(sa.sun_path, path, strlen(path)+1))) {
     return -1;
  }
  sa.sun_family = AF_UNIX;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/data-types/mailstream_low.c 
new/libetpan-1.9.1/src/data-types/mailstream_low.c
--- old/libetpan-1.8/src/data-types/mailstream_low.c    2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/data-types/mailstream_low.c  2018-09-12 
13:54:16.000000000 +0200
@@ -429,7 +429,6 @@
   int fd;
   int idle_fd;
   int cancel_fd;
-  struct timeval delay;
   int r;
 #if defined(WIN32)
   fd_set readfds;
@@ -533,6 +532,7 @@
   if (cancel_fd > maxfd) {
     maxfd = cancel_fd;
   }
+  struct timeval delay;
   delay.tv_sec = max_idle_delay;
   delay.tv_usec = 0;
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/data-types/mailstream_ssl.c 
new/libetpan-1.9.1/src/data-types/mailstream_ssl.c
--- old/libetpan-1.8/src/data-types/mailstream_ssl.c    2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/data-types/mailstream_ssl.c  2018-09-12 
13:54:16.000000000 +0200
@@ -262,6 +262,7 @@
 void mailstream_openssl_init_not_required(void)
 {
 #ifdef USE_SSL
+  mailstream_ssl_init_lock();
   MUTEX_LOCK(&ssl_lock);
   openssl_init_done = 1;
   MUTEX_UNLOCK(&ssl_lock);
@@ -408,7 +409,7 @@
 
 static int mailstream_openssl_client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY 
**pkey)
 {
-       struct mailstream_ssl_context * ssl_context = (struct 
mailstream_ssl_context *)SSL_CTX_get_app_data(ssl->ctx);
+       struct mailstream_ssl_context * ssl_context = (struct 
mailstream_ssl_context *)SSL_CTX_get_app_data(SSL_get_SSL_CTX(ssl));
        
        if (x509 == NULL || pkey == NULL) {
                return 0;
@@ -427,7 +428,7 @@
 }
 
 static struct mailstream_ssl_data * ssl_data_new_full(int fd, time_t timeout,
-       SSL_METHOD * method, void (* callback)(struct mailstream_ssl_context * 
ssl_context, void * cb_data),
+       const SSL_METHOD * method, void (* callback)(struct 
mailstream_ssl_context * ssl_context, void * cb_data),
        void * cb_data)
 {
   struct mailstream_ssl_data * ssl_data;
@@ -567,7 +568,8 @@
 #if GNUTLS_VERSION_NUMBER <= 0x020c00
                st->type = type;
 #else
-               st->key_type = type;
+               st->cert_type = type;
+               st->key_type = GNUTLS_PRIVKEY_X509;
 #endif
                st->cert.x509 = &(ssl_context->client_x509);
                st->key.x509 = ssl_context->client_pkey;
@@ -1454,8 +1456,8 @@
   }
   
   result = carray_new(4);
-  for(skpos = 0 ; skpos < sk_num(skx) ; skpos ++) {
-    X509 * x = (X509 *) sk_value(skx, skpos);
+  for(skpos = 0 ; skpos < sk_num((_STACK *) skx) ; skpos ++) {
+    X509 * x = (X509 *) sk_value((_STACK *) skx, skpos);
     unsigned char * p;
     MMAPString * str;
     int length = i2d_X509(x, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/engine/mailprivacy_gnupg.c 
new/libetpan-1.9.1/src/engine/mailprivacy_gnupg.c
--- old/libetpan-1.8/src/engine/mailprivacy_gnupg.c     2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/engine/mailprivacy_gnupg.c   2018-09-12 
13:54:16.000000000 +0200
@@ -1491,6 +1491,10 @@
   
   multipart = mailprivacy_new_file_part(privacy, NULL,
       "multipart/signed", -1);
+  if (multipart == NULL) {
+    res = MAIL_ERROR_MEMORY;
+    goto unlink_description;
+  }
   
   content = multipart->mm_content_type;
   
@@ -1871,6 +1875,10 @@
   
   multipart = mailprivacy_new_file_part(privacy, NULL,
       "multipart/encrypted", -1);
+  if (multipart == NULL) {
+    res = MAIL_ERROR_MEMORY;
+    goto unlink_description;
+  }
   
   content = multipart->mm_content_type;
   
@@ -1915,10 +1923,10 @@
       version_filename,
       "application/pgp-encrypted",
       MAILMIME_MECHANISM_8BIT);
-  if (r != MAIL_NO_ERROR) {
+  if (version_mime == NULL) {
     mailprivacy_mime_clear(multipart);
     mailmime_free(multipart);
-    res = r;
+    res = MAIL_ERROR_MEMORY;
     goto unlink_version;
   }
 
@@ -1938,10 +1946,10 @@
       encrypted_filename,
       "application/octet-stream",
       MAILMIME_MECHANISM_8BIT);
-  if (r != MAIL_NO_ERROR) {
+  if (encrypted_mime == NULL) {
     mailprivacy_mime_clear(multipart);
     mailmime_free(multipart);
-    res = r;
+    res = MAIL_ERROR_MEMORY;
     goto unlink_version;
   }
   
@@ -2092,6 +2100,10 @@
   
   multipart = mailprivacy_new_file_part(privacy, NULL,
       "multipart/encrypted", -1);
+  if (multipart == NULL) {
+    res = MAIL_ERROR_MEMORY;
+    goto unlink_description;
+  }
   
   content = multipart->mm_content_type;
   
@@ -2135,10 +2147,10 @@
       version_filename,
       "application/pgp-encrypted",
       MAILMIME_MECHANISM_8BIT);
-  if (r != MAIL_NO_ERROR) {
+  if (version_mime == NULL) {
     mailprivacy_mime_clear(multipart);
     mailmime_free(multipart);
-    res = r;
+    res = MAIL_ERROR_MEMORY;
     goto unlink_version;
   }
 
@@ -2158,10 +2170,10 @@
       encrypted_filename,
       "application/octet-stream",
       MAILMIME_MECHANISM_8BIT);
-  if (r != MAIL_NO_ERROR) {
+  if (encrypted_mime == NULL) {
     mailprivacy_mime_clear(multipart);
     mailmime_free(multipart);
-    res = r;
+    res = MAIL_ERROR_MEMORY;
     goto unlink_version;
   }
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/engine/mailprivacy_smime.c 
new/libetpan-1.9.1/src/engine/mailprivacy_smime.c
--- old/libetpan-1.8/src/engine/mailprivacy_smime.c     2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/engine/mailprivacy_smime.c   2018-09-12 
13:54:16.000000000 +0200
@@ -37,6 +37,9 @@
 #      include <config.h>
 #endif
 
+#if __APPLE__
+#include <TargetConditionals.h>
+#endif
 #include "mailprivacy_smime.h"
 #include <string.h>
 #ifdef WIN32
@@ -1537,7 +1540,13 @@
   char quoted_store_cert_filename[PATH_MAX];
   int r;
   char command[PATH_MAX];
-
+  
+#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
+  //https://github.com/dinhviethoa/libetpan/issues/275
+  //get_cert_from_sig is not needed on iOS
+  return MAIL_ERROR_COMMAND;
+#endif
+  
   if (* cert_dir == '\0')
     return MAIL_ERROR_INVAL;
 
@@ -1597,7 +1606,12 @@
       "openssl pkcs7 -inform DER -in '%s' -out '%s' -print_certs 2>/dev/null",
       quoted_signature_filename, quoted_store_cert_filename);
   
+#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
+  //https://github.com/dinhviethoa/libetpan/issues/275
+  //system() is not supported on iOS 11.
   r = system(command);
+#endif
+
   if (WEXITSTATUS(r) != 0) {
     res = MAIL_ERROR_COMMAND;
     goto unlink_signature;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/engine/mailprivacy_tools.c 
new/libetpan-1.9.1/src/engine/mailprivacy_tools.c
--- old/libetpan-1.8/src/engine/mailprivacy_tools.c     2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/engine/mailprivacy_tools.c   2018-09-12 
13:54:16.000000000 +0200
@@ -37,6 +37,10 @@
 #      include <config.h>
 #endif
 
+#if __APPLE__
+#include <TargetConditionals.h>
+#endif
+
 #include "mailprivacy_tools.h"
 #include "mailprivacy_tools_private.h"
 
@@ -1323,6 +1327,12 @@
     char * stdoutfile, char * stderrfile,
     int * bad_passphrase)
 {
+#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
+  //https://github.com/dinhviethoa/libetpan/issues/275
+  //mailprivacy_spawn_and_wait is not needed on iOS
+  return MAIL_ERROR_COMMAND;
+#endif
+
 #ifdef WIN32
   int res;
   SECURITY_ATTRIBUTES sec_attr;
@@ -1509,8 +1519,12 @@
       dup2(fd_err, 2);
       close(fd_err);
       
+#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
+      //https://github.com/dinhviethoa/libetpan/issues/275
+      //system() is not supported on iOS 11.
       status = system(command);
-      
+#endif
+  
       exit(WEXITSTATUS(status));
     }
     break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/imap/acl.c 
new/libetpan-1.9.1/src/low-level/imap/acl.c
--- old/libetpan-1.8/src/low-level/imap/acl.c   2017-05-08 05:27:35.000000000 
+0200
+++ new/libetpan-1.9.1/src/low-level/imap/acl.c 2018-09-12 13:54:16.000000000 
+0200
@@ -345,8 +345,10 @@
         ext_data->ext_extension->ext_id == MAILIMAP_EXTENSION_ACL &&
         ext_data->ext_type == MAILIMAP_ACL_TYPE_MYRIGHTS_DATA) {
           * result = (struct mailimap_acl_myrights_data *)ext_data->ext_data;
+          ext_data->ext_data = NULL;
           /* remove the element from rsp_extension_list */
           clist_delete(session->imap_response_info->rsp_extension_list, cur);
+          mailimap_extension_data_free(ext_data);
 
           break;
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/imap/mailimap_extension.c 
new/libetpan-1.9.1/src/low-level/imap/mailimap_extension.c
--- old/libetpan-1.8/src/low-level/imap/mailimap_extension.c    2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/imap/mailimap_extension.c  2018-09-12 
13:54:16.000000000 +0200
@@ -166,7 +166,8 @@
   if (data == NULL)
     return;
 
-  if (data->ext_extension != NULL)
+  if (data->ext_extension != NULL && data->ext_data != NULL)
+    /* ext_free() includes free(data) */
     data->ext_extension->ext_free(data);
   else
     free(data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libetpan-1.8/src/low-level/imap/mailimap_extension_types.h 
new/libetpan-1.9.1/src/low-level/imap/mailimap_extension_types.h
--- old/libetpan-1.8/src/low-level/imap/mailimap_extension_types.h      
2017-05-08 05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/imap/mailimap_extension_types.h    
2018-09-12 13:54:16.000000000 +0200
@@ -33,6 +33,7 @@
 #define MAILIMAP_EXTENSION_TYPES_H
 
 #include <libetpan/mailstream.h>
+#include <libetpan/mailimap_types.h>
 
 struct mailimap_extension_data;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/imap/mailimap_types.c 
new/libetpan-1.9.1/src/low-level/imap/mailimap_types.c
--- old/libetpan-1.8/src/low-level/imap/mailimap_types.c        2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/imap/mailimap_types.c      2018-09-12 
13:54:16.000000000 +0200
@@ -1201,8 +1201,10 @@
 LIBETPAN_EXPORT
 void mailimap_flag_list_free(struct mailimap_flag_list * flag_list)
 {
-  clist_foreach(flag_list->fl_list, (clist_func) mailimap_flag_free, NULL);
-  clist_free(flag_list->fl_list);
+  if (flag_list->fl_list) {
+    clist_foreach(flag_list->fl_list, (clist_func) mailimap_flag_free, NULL);
+    clist_free(flag_list->fl_list);
+  }
   free(flag_list);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/imf/mailimf.c 
new/libetpan-1.9.1/src/low-level/imf/mailimf.c
--- old/libetpan-1.8/src/low-level/imf/mailimf.c        2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/imf/mailimf.c      2018-09-12 
13:54:16.000000000 +0200
@@ -1173,7 +1173,6 @@
   return res;
 }
 
-LIBETPAN_EXPORT
 static int mailimf_fws_atom_for_word_parse(const char * message, size_t length,
                                            size_t * indx, char ** result, int 
* p_missing_closing_quote)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/mbox/mailmbox.c 
new/libetpan-1.9.1/src/low-level/mbox/mailmbox.c
--- old/libetpan-1.8/src/low-level/mbox/mailmbox.c      2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/mbox/mailmbox.c    2018-09-12 
13:54:16.000000000 +0200
@@ -1162,7 +1162,7 @@
   size_t cur_offset;
   char * dest;
   size_t size;
-  int i;
+  unsigned int i;
 
   size = 0;
   for(i = 0 ; i < carray_count(folder->mb_tab) ; i ++) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/mime/mailmime_decode.c 
new/libetpan-1.9.1/src/low-level/mime/mailmime_decode.c
--- old/libetpan-1.8/src/low-level/mime/mailmime_decode.c       2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/mime/mailmime_decode.c     2018-09-12 
13:54:16.000000000 +0200
@@ -369,180 +369,6 @@
                                 struct mailmime_encoded_word ** result,
                                 int * p_has_fwd, int * p_missing_closing_quote)
 {
-#if 0
-  size_t cur_token;
-  char * charset;
-  int encoding;
-  char * text;
-  size_t end_encoding;
-  char * decoded;
-  size_t decoded_len;
-  struct mailmime_encoded_word * ew;
-  int r;
-  int res;
-  int opening_quote;
-  int end;
-  int has_fwd;
-  int missing_closing_quote;
-  
-  cur_token = * indx;
-
-  missing_closing_quote = 0;
-  has_fwd = 0;
-  r = mailimf_fws_parse(message, length, &cur_token);
-  if (r == MAILIMF_NO_ERROR) {
-    has_fwd = 1;
-  }
-  if ((r != MAILIMF_NO_ERROR) && (r != MAILIMF_ERROR_PARSE)) {
-    res = r;
-    goto err;
-  }
-
-  opening_quote = FALSE;
-  r = mailimf_char_parse(message, length, &cur_token, '\"');
-  if (r == MAILIMF_NO_ERROR) {
-    opening_quote = TRUE;
-  }
-  else if (r == MAILIMF_ERROR_PARSE) {
-    /* do nothing */  
-  }
-  else {
-    res = r;
-    goto err;
-  }
-
-  r = mailimf_token_case_insensitive_parse(message, length, &cur_token, "=?");
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto err;
-  }
-
-  r = mailmime_charset_parse(message, length, &cur_token, &charset);
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto err;
-  }
-
-  r = mailimf_char_parse(message, length, &cur_token, '?');
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto free_charset;
-  }
-
-  r = mailmime_encoding_parse(message, length, &cur_token, &encoding);
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto free_charset;
-  }
-
-  r = mailimf_char_parse(message, length, &cur_token, '?');
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto free_charset;
-  }
-
-  end = FALSE;
-  end_encoding = cur_token;
-  while (1) {
-    if (end_encoding >= length)
-      break;
-
-    if (end_encoding + 1 < length) {
-      if ((message[end_encoding] == '?') && (message[end_encoding + 1] == 
'=')) {
-        end = TRUE;
-      }
-    }
-
-    if (end)
-      break;
-
-    end_encoding ++;
-  }
-
-  decoded_len = 0;
-  decoded = NULL;
-  switch (encoding) {
-  case MAILMIME_ENCODING_B:
-    r = mailmime_base64_body_parse(message, end_encoding,
-                                  &cur_token, &decoded,
-                                  &decoded_len);
-      
-    if (r != MAILIMF_NO_ERROR) {
-      res = r;
-      goto free_charset;
-    }
-    break;
-  case MAILMIME_ENCODING_Q:
-    r = mailmime_quoted_printable_body_parse(message, end_encoding,
-                                            &cur_token, &decoded,
-                                            &decoded_len, TRUE);
-
-    if (r != MAILIMF_NO_ERROR) {
-      res = r;
-      goto free_charset;
-    }
-
-    break;
-  }
-
-  text = malloc(decoded_len + 1);
-  if (text == NULL) {
-    res = MAILIMF_ERROR_MEMORY;
-    goto free_charset;
-  }
-
-  if (decoded_len > 0)
-    memcpy(text, decoded, decoded_len);
-  text[decoded_len] = '\0';
-
-  mailmime_decoded_part_free(decoded);
-
-  r = mailimf_token_case_insensitive_parse(message, length, &cur_token, "?=");
-#if 0
-  if (r != MAILIMF_NO_ERROR) {
-    res = r;
-    goto free_encoded_text;
-  }
-#endif
-
-  if (opening_quote) {
-    r = mailimf_char_parse(message, length, &cur_token, '\"');
-#if 0
-    if ((r != MAILIMF_NO_ERROR) && (r != MAILIMF_ERROR_PARSE)) {
-      res = r;
-      goto free_encoded_text;
-    }
-#endif
-    if (r == MAILIMF_ERROR_PARSE) {
-      missing_closing_quote = 1;
-    }
-  }
-  
-  /* fix charset */
-  if (strcasecmp(charset, "utf8") == 0) {
-    free(charset);
-    charset = strdup("utf-8");
-  }
-  ew = mailmime_encoded_word_new(charset, text);
-  if (ew == NULL) {
-    res = MAILIMF_ERROR_MEMORY;
-    goto free_encoded_text;
-  }
-
-  * result = ew;
-  * indx = cur_token;
-  * p_has_fwd = has_fwd;
-  * p_missing_closing_quote = missing_closing_quote;
-  
-  return MAILIMF_NO_ERROR;
-
- free_encoded_text:
-  mailmime_encoded_text_free(text);
- free_charset:
-  mailmime_charset_free(charset);
- err:
-  return res;
-#else
   /*
   Parse the following, when a unicode character encoding is split.
   =?UTF-8?B?4Lij4Liw4LmA4Lia4Li04LiU4LiE4Lin4Liy4Lih4Lih4Lix4LiZ4Liq4LmM?=
@@ -821,13 +647,11 @@
   mailmime_decoded_part_free(decoded);
 free_body:
   free(body);
-free_encoded_text:
   mailmime_encoded_text_free(text);
 free_charset:
   mailmime_charset_free(charset);
 err:
   return res;
-#endif
 }
 
 static int mailmime_charset_parse(const char * message, size_t length,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/src/low-level/smtp/mailsmtp.c 
new/libetpan-1.9.1/src/low-level/smtp/mailsmtp.c
--- old/libetpan-1.8/src/low-level/smtp/mailsmtp.c      2017-05-08 
05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/src/low-level/smtp/mailsmtp.c    2018-09-12 
13:54:16.000000000 +0200
@@ -1224,6 +1224,8 @@
     return "Transaction failed";
   case MAILSMTP_ERROR_MEMORY:
     return "Memory error";
+  case MAILSMTP_ERROR_AUTH_NOT_SUPPORTED:
+    return "Authentication is not supported";
   case MAILSMTP_ERROR_CONNECTION_REFUSED:
     return "Connection refused";
   case MAILSMTP_ERROR_STARTTLS_TEMPORARY_FAILURE:
@@ -1231,7 +1233,7 @@
   case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED:
     return "TLS not supported by server";
   case MAILSMTP_ERROR_AUTH_LOGIN:
-       return "Login failed";
+    return "Login failed";
   default:
     return "Unknown error code";
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/tests/option-parser.c 
new/libetpan-1.9.1/tests/option-parser.c
--- old/libetpan-1.8/tests/option-parser.c      2017-05-08 05:27:35.000000000 
+0200
+++ new/libetpan-1.9.1/tests/option-parser.c    2018-09-12 13:54:16.000000000 
+0200
@@ -97,6 +97,7 @@
     {"cache",    1, 0, 'c'},
     {"flags",    1, 0, 'f'},
        {"debug-stream", 0, 0, 'D'},
+    {NULL,       0, 0, 0},
   };
 #endif
   int r;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libetpan-1.8/tests/smtpsend.c 
new/libetpan-1.9.1/tests/smtpsend.c
--- old/libetpan-1.8/tests/smtpsend.c   2017-05-08 05:27:35.000000000 +0200
+++ new/libetpan-1.9.1/tests/smtpsend.c 2018-09-12 13:54:16.000000000 +0200
@@ -54,12 +54,12 @@
 #define BLOCKSIZE 4096
 
 int collect(struct mem_message *message) {
-  struct stat sb;
   int len;
 
   memset(message, 0, sizeof(struct mem_message));
 
 #ifndef MMAP_UNAVAILABLE
+  struct stat sb;
   /* if stdin is a file whose size is known, try to mmap it */
   if (!fstat(0, &sb) && S_ISREG(sb.st_mode) && sb.st_size >= 0) {
     message->len = sb.st_size;
@@ -286,6 +286,7 @@
     {"no-esmtp", 0, 0, 'E'},
     {"ssl",      0, 0, 'L'},
     {"lmtp",     0, 0, 'T'},
+    {NULL,       0, 0, 0},
   };
 #endif
 


Reply via email to