Subject: 24.4; EPG is incompatible with GnuPG 1.2 (Workaround enclosed)

From: Hideki Saito <[email-masked]>
Date: Thu, 06 Nov 2014 15:09:55 -0800

I have discovered that with the newest GnuPG 2.1, due to the fact that
the output from the GnuPG has been changed, upon attempt to list the key
(from Gnus in my test case) EPG will fail to return valid list of key,
instead it would crash with args-out-of-range. (Easiest way to get this
error is to attemp to call epa-list-keys.)

After debugging the code, I have discovered that it is trying insert
contents of the output into the list longer than the size of the list. 

While crude workaround, doubling this list (from 15 to 30) has prevented
crash, thus the line 1909 of epg.el would read:

(setq keys (cons (make-vector 30 nil) keys)

Considering the scope of my attempt is to fix the issue so I can send
encrypted/signed E-mail from Gnus, this means that not every function
are verified to work with this change. But I wanted to give you heads up
on this issue.

Regards,

In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2014-10-17 on madoka
Windowing system distributor `The X.Org Foundation', version 11.0.11600000
System Description:	Ubuntu 14.10

Configured using:
 `configure --prefix=/home/hideki/localbin/emacs'

Important settings:
  value of $LC_ALL: ja_JP.UTF-8
  value of $LC_MESSAGES: ja_JP.UTF-8
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: ja_JP.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8

Major mode: Org

Minor modes in effect:
  delete-selection-mode: t
  erc-truncate-mode: t
  erc-page-mode: t
  erc-notify-mode: t
  erc-log-mode: t
  erc-identd-mode: t
  erc-dcc-mode: t
  erc-autoaway-mode: t
  recentf-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-unmorse-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  display-time-mode: t
  display-battery-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Features:
(shadow emacsbug help-mode misearch multi-isearch mailalias hashcash
nnir gnus-gravatar gravatar sort smiley gnus-cite mail-extr gnus-async
gnus-bcklg qp gnus-ml disp-table gnus-topic mm-archive url-http url-gw
url-cache url-auth url-handlers nnrss mm-url nndraft nnmh utf-7 epa-file
gnutls network-stream starttls nnfolder bbdb-gnus bbdb-mua bbdb-com crm
nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache
gnus-sum gnus-group gnus-undo org-mime smtpmail nnimap nnmail
mail-source tls utf7 netrc nnoo gnus-start gnus-spec gnus-int gnus-range
gnus-win gnus gnus-ems nnheader epa skk-cursor skk-dcomp skk-comp
skk-server skk-cus cus-edit ccc info finder-inf epg bbdb-message
sendmail message rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader bbdb bbdb-site bbdb-loaddefs org-rmail org-mhe
org-irc org-info org-gnus org-docview doc-view jka-compr image-mode
org-bibtex bibtex org-bbdb org-w3m slime hyperspec ox-latex ox-icalendar
ox-html ox-ascii ox-publish ox org-element org org-macro org-footnote
org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint
ob-core ob-eval org-compat org-macs org-loaddefs find-func cal-menu
calendar cal-loaddefs helm-config helm-aliases init evil
evil-integration evil-maps evil-commands evil-types evil-digraphs
evil-search evil-ex evil-macros evil-repeat evil-states evil-core
evil-common windmove rect evil-vars euc-kp web-mode protobuf-mode
cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs markdown-mode noutline outline syslog-mode
saveplace mozc package epg-config whattf-dt html5-langs skk-study skk
skk-emacs skk-macs skk-vars skk-autoloads queue-m coffee-mode
go-mode-load delsel nyan-mode easy-mmode transset japan-composite
android twittering-mode derived edmacro kmacro url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
url-parse url-vars mailcap parse-time xml color-moccur advice
navi2ch-thumbnail navi2ch-p2 navi2ch-auto-modify navi2ch-localfile
navi2ch-oyster navi2ch-mona navi2ch-futaba navi2ch-machibbs
navi2ch-jbbs-shitaraba navi2ch-be2ch navi2ch-http-date navi2ch-multibbs
navi2ch-jbbs-net navi2ch-version navi2ch-splash navi2ch-e21
navi2ch-message navi2ch-directory navi2ch-search navi2ch-history
navi2ch-bookmark navi2ch-articles navi2ch-board navi2ch-board-misc
navi2ch-popup-article navi2ch-article navi2ch-list navi2ch-net
browse-url timezone navi2ch-util navi2ch-face navi2ch-config
navi2ch-vars navi2ch nav dired ack compile ucs-normalize search-dispatch
erc-truncate erc-page erc-notify erc-log erc-identd erc-dcc erc-autoaway
solarized-dark-theme solarized-definitions cl-macs cl gv recentf
tree-widget erc-list erc-menu easymenu erc-join erc-ring erc-networks
erc-pcomplete pcomplete comint ansi-color ring erc-track erc-match
erc-button wid-edit cl-loaddefs cl-lib erc-fill erc-stamp erc-netsplit
erc-goodies erc erc-backend erc-compat format-spec auth-source eieio
byte-opt bytecomp byte-compile cconv eieio-core gnus-util mm-util
help-fns mail-prsvr password-cache thingatpt pp time battery cus-start
cus-load time-date japan-util tooltip electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 835022 58207)
 (symbols 48 60018 94)
 (miscs 40 777 405)
 (strings 32 145490 17570)
 (string-bytes 1 4279675)
 (vectors 16 70636)
 (vector-slots 8 1162624 16834)
 (floats 8 456 590)
 (intervals 56 13447 97)
 (buffers 960 45)
 (heap 1024 87172 13445))

-- 
Hideki Saito
OpenPGP Key: http://hidekisaito.com/aff2e40b.txt
1066 3928 7B0B E7CD A0CB  3686 1FDF D937 AFF2 E40B
http://hidekisaito.com