Cyrus Imap: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL

Publicado por Fabio Soares Schmidt em 15/07/2011

[ Hits: 4.679 ]

 


Cyrus Imap: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL



Essa dica é para quem necessita compilar o Cyrus Imap 2.4.8 com suporte a replicação direto dos fontes, porém há um erro no código do sync_client que resulta no erro "Fatal error: Internal error: assertion failed: seen_db.c: 127:  *seendbptr == NULL" ao tentar efetuar a replicação com o sync_client, afetando dessa forma o sincronismo dos arquivos .seen e scripts sieve.

É necessário aplicar um patch no arquivo imap/sync_client.c, esse é o conteúdo:

From 5de9eee60d947243a4b4b2f4eccc63cff2771b30 Mon Sep 17 00:00:00 2001
From: Bron Gondwana <[email protected]>
Date: Thu, 31 Mar 2011 05:03:10 +0000
Subject: seen: fix seen_db related crash

---
--- a/imap/sync_client.c
+++ b/imap/sync_client.c
@@ -1423,7 +1423,7 @@ static int update_seen_work(const char *
static int do_seen(char *user, char *uniqueid)
{
     int r = 0;
-    struct seen *seendb;
+    struct seen *seendb = NULL;
     struct seendata sd;

     if (verbose)
@@ -1437,12 +1437,8 @@ static int do_seen(char *user, char *uni
     if (r) return 0;

     r = seen_read(seendb, uniqueid, &sd);
-    if (r) {
-       seen_close(&seendb);
-       return 0;
-    }

-    r = update_seen_work(user, uniqueid, &sd);
+    if (!r) r = update_seen_work(user, uniqueid, &sd);

     seen_close(&seendb);
     seen_freedata(&sd);
@@ -1876,7 +1872,7 @@ static int do_user_seen(char *user, stru
{
     int r;
     struct sync_seen *mseen, *rseen;
-    struct seen *seendb;
+    struct seen *seendb = NULL;
     struct sync_seen_list *list;

     /* silently ignore errors */

Copie o conteúdo acima, salve o arquivo no diretório raiz dos fontes e mande aplicar o patch:

# patch -p1 < arquivo.patch

Feito isso, compile o Cyrus normalmente.

Link informando sobre o problema: www.mail-archive.com/[email protected]/msg904344.html

Fabio Soares Schmidt
respirandolinux.wordpress.com


Outras dicas deste autor

Implementando assinatura DKIM com Postfix e Amavis

Cyrus Aggregator - Resolvendo inconsistências entre servidores Back-end e Mupdate Master (Murder)

Zimbra: Aplicando patch de segurança para vulnerabilidade de CCS Injection (CVE-2014-0224)

Postfix - Criando regras condicionais

Personalizar mensagem de erro no Squid

Leitura recomendada

Configurando o Exim como MX secundário

Rejeitando extensões maliciosas com Postfix

Erro ao carregar 'kio_pop3'

Cyrus IMAP: "Message contains bare newlines" (Erro ao importar mensagens)

Acompanhar logs do Zimbra por usuários

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts