Skip to content

Commit

Permalink
Merge pull request #4579 from cyrusimap/issue_4574
Browse files Browse the repository at this point in the history
jmap_mail: do not dereference NULL pointer in Email/parse
  • Loading branch information
rsto authored Aug 17, 2023
2 parents 5625e15 + 9d965da commit 8b0370a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
45 changes: 45 additions & 0 deletions cassandane/tiny-tests/JMAPEmail/email_parse_inmemory_blob
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!perl
use Cassandane::Tiny;

sub test_email_parse_inmemory_blob
:min_version_3_9 :needs_component_jmap
{
my ($self) = @_;
my $jmap = $self->{jmap};

# XXX: replace with the upstream one once RFC 9404 is finished
$jmap->AddUsing('https://cyrusimap.org/ns/jmap/blob');

my $mimeMsg = <<'EOF';
From: <from@local>
To: to@local
Bcc: bcc@local
Subject: test
Date: Mon, 13 Apr 2020 15:34:03 +0200
MIME-Version: 1.0
Content-Type: text/plain
hello
EOF
$mimeMsg =~ s/\r?\n/\r\n/gs;

# XXX: can't use a result reference in array
my $blobId = 'G67501cd2e1eaaf65d25e6f3b49554d2193f06ee8';

$res = $jmap->CallMethods([
['Blob/upload', {
create => {
b1 => {
data => [{'data:asText' => $mimeMsg}]
},
},
}, 'R1'],
['Email/parse', {
blobIds => [$blobId],
properties => ['subject', 'bodyStructure'],
}, 'R2'],
]);
$self->assert_str_equals('Blob/upload', $res->[0][0]);
$self->assert_not_null($res->[0][1]{created}{b1}{id});
$self->assert_str_equals('test', $res->[1][1]{parsed}{$blobId}{subject});
}
2 changes: 1 addition & 1 deletion imap/jmap_mail.c
Original file line number Diff line number Diff line change
Expand Up @@ -8444,7 +8444,7 @@ static int jmap_email_parse(jmap_req_t *req)

struct buf *inmem = hash_lookup(blobid, req->inmemory_blobs);
if (inmem) {
r = _email_from_buf(req, &getargs, inmem, part->encoding, &email);
r = _email_from_buf(req, &getargs, inmem, NULL, &email);
if (r) {
syslog(LOG_ERR, "jmap: Email/parse(%s): %s", blobid, error_message(r));
}
Expand Down

0 comments on commit 8b0370a

Please sign in to comment.