curl imap returns error 78 File not found instead of the email

Bug #1861721 reported by Jim Pye
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Curl
Fix Released
Unknown
curl (Ubuntu)
New
Undecided
Unassigned

Bug Description

The version of curl included in Ubuntu 18.04 LTS has a bug that causes the imap sub-command/scheme to return Error 78 File not found when it should return the contents of the email.

This is documented in the Bug Report on GitHub as: https://github.com/curl/curl/issues/4479

The version supplied in Ubuntu 19.10, and future 20.04 LTS will be the fixed version.

Ubuntu 18.04
Version:
$ curl -V
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Command:
$ curl --insecure --url "imaps://email.example.co.nz/Spam;UID=33" -n
curl: (78) Remote file not found

Ubuntu 19.10
Version:
$ curl -V
curl 7.65.3 (x86_64-pc-linux-gnu) libcurl/7.65.3 OpenSSL/1.1.1c zlib/1.2.11 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.0.5) libssh/0.9.0/openssl/zlib nghttp2/1.39.2 librtmp/2.3
Release-Date: 2019-07-19
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

Command:
$ curl --insecure --url "imaps://email.example.co.nz/Spam;UID=33" -n
Return-Path: <email address hidden>
Received: from email.example.co.nz ([unix socket])
  by email (Cyrus x.xx.xx. with LMTPA;
  Tue, 28 Jan 2020 22:05:56 +1300
X-Sieve: CMU Sieve x.x
8x ---- Snip ---- x8

Also the version supplied with OSX works correctly.

% curl -V
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
Release-Date: 2019-03-27
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets

Running curl with -v returns this for a failed download (after authentication and other house keeping):

> A003 SELECT Spam
< * 8 EXISTS
< * 0 RECENT
< * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
< * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok
< * OK [UIDVALIDITY 1573031905] Ok
< * OK [UIDNEXT 41] Ok
< * OK [HIGHESTMODSEQ 89] Ok
< * OK [URLMECH INTERNAL] Ok
< * OK [ANNOTATIONS 65536] Ok
< A003 OK [READ-WRITE] Completed
> A004 FETCH 33 BODY[]
< A004 NO No matching messages (0.000 sec)
> A005 LOGOUT
< * BYE LOGOUT received
< A005 OK Completed
* Closing connection 0
curl: (78) Remote file not found

Cheers
Jim

Tags: bionic
Paul White (paulw2u)
affects: ubuntu → curl (Ubuntu)
tags: added: bionic
Changed in curl:
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.