2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 14:17:41 +00:00

snapshot-20010524

This commit is contained in:
Wietse Venema
2001-05-24 00:00:00 -05:00
committed by Viktor Dukhovni
parent 92370560ec
commit ca0dd40ea2
12 changed files with 805 additions and 408 deletions

View File

@@ -5187,13 +5187,18 @@ Apologies for any names omitted.
20010522 20010522
Feature: "postsuper -r queueID" re-queues a message. The Feature: "postsuper -r queueID" re-queues a message, and
message is moved to the maildrop queue so that the pickup "postsuper -R" re-queues all mail. The message is moved to
daemon will copy it to a new file with the "right" name the maildrop queue so that the pickup daemon will copy it
that matches the queue file inode number, and so that to a new queue file, and so that address rewriting will be
address rewriting will be done again. This is useful after done again. This is useful after changes of address rewriting
changes of address rewriting or virtual mappings. or virtual mappings.
Feature: "postsuper -R" re-queues all mail. This is useful 20010523
after restoring a Postfix queue from another machine, or
from backup. Feature: "postsuper -s" (which is done by default) renames
queue files whose queue ID does not match the message file
inode number.
Bugfix: memory leak in the LDAP client module. Alain
Thivillon,France Teaser - Groupe Firstream.

View File

@@ -12,20 +12,22 @@ server state just like RSET. This behavior cannot be disabled.
Major changes with snapshot-20010522 Major changes with snapshot-20010522
==================================== ====================================
Revision of some fine details in the light of the new RFC 2821 and This release contains revisions of some fine details in the light
RFC 2822 standards. Changes that may affect interoperability are of the new RFC 2821 and RFC 2822 standards. Changes that may affect
listed above under "incompatible changes". interoperability are listed above under "incompatible changes".
The postsuper tool can rename files whose queue ID does not match
the queue file inode number. This is necessary when a Postfix mail
queue is restored from another machine or from backups. The feature
is selected with the -s option, which is the default.
The postsuper queue maintenance tool was extended with options to The postsuper queue maintenance tool was extended with options to
read queue IDs from standard input (which makes it easier to drive read queue IDs from standard input. This makes the tool easier to
the tool from scripts). drive from scripts.
The postsuper queue maintenance tool has a new -r (requeue) option The postsuper queue maintenance tool has a new -r (requeue) option
for subjecting queue files to another iteration of address rewriting. for subjecting queue files to another iteration of address rewriting.
The postsuper -R option requeues all mail. This is necessary after
restoring Postfix queues from another machine or from backups.
Major changes with snapshot-20010502 Major changes with snapshot-20010502
==================================== ====================================

View File

@@ -174,9 +174,6 @@ check)
\( -perm -020 -o -perm -002 \) \ \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \; -exec $WARN group or other writable: {} \;
find $queue_directory/* $config_directory/* -name '*core' \
-exec $WARN core file: {} \; 2>/dev/null
test -d maildrop || { test -d maildrop || {
$WARN creating missing Postfix maildrop directory $WARN creating missing Postfix maildrop directory
mkdir maildrop || exit 1 mkdir maildrop || exit 1
@@ -254,10 +251,11 @@ EOF
$command_directory/postconf -e hash_queue_names="$found$missing" $command_directory/postconf -e hash_queue_names="$found$missing"
} }
# See if all queue files are in the right place. # See if all queue files are in the right place. This is slow.
# We must scan all queues for mis-named queue files before the
# mail system can run.
$command_directory/postsuper active $command_directory/postsuper || exit 1
$command_directory/postsuper &
find corrupt -type f -exec $WARN damaged message: {} \; find corrupt -type f -exec $WARN damaged message: {} \;

View File

@@ -174,9 +174,6 @@ check)
\( -perm -020 -o -perm -002 \) \ \( -perm -020 -o -perm -002 \) \
-exec $WARN group or other writable: {} \; -exec $WARN group or other writable: {} \;
find $queue_directory/* $config_directory/* -name '*core' \
-exec $WARN core file: {} \; 2>/dev/null
test -d maildrop || { test -d maildrop || {
$WARN creating missing Postfix maildrop directory $WARN creating missing Postfix maildrop directory
mkdir maildrop || exit 1 mkdir maildrop || exit 1
@@ -255,10 +252,11 @@ EOF
$command_directory/postconf -e hash_queue_names="$found$missing" $command_directory/postconf -e hash_queue_names="$found$missing"
} }
# See if all queue files are in the right place. # See if all queue files are in the right place. This is slow.
# We must scan all queues for mis-named queue files before the
# mail system can run.
$command_directory/postsuper active $command_directory/postsuper || exit 1
$command_directory/postsuper &
find corrupt -type f -exec $WARN damaged message: {} \; find corrupt -type f -exec $WARN damaged message: {} \;

View File

@@ -3063,13 +3063,61 @@ that the file name will collide with another queue file.
<p> <p>
To avoid queue file name collisions when copying queue files, <ul>
restore the incoming, active and deferred queue files under the
maildrop directory instead. <li>If your Postfix queue is empty, and if you run a Postfix release
after 20010524, you can use this procedure to copy a Postfix
queue from another machine or to restore it from backup.
<p> <p>
As of late 2000, Postfix queues are all hashed (for example, file <ul>
<li> Stop Postfix, if it was running.
<p>
<li> Execute the <b>mailq</b> command. If there is any output, do
not complete this procedure, but use the second procedure instead.
<p>
<li> Copy or restore the queue to the usual place.
<p>
<li> Run the <b>postsuper</b> command. This command will rename
queue files so that the name matches the message file inode number.
</ul>
<p>
<li> If your Postfix queue is not empty, or if you are running a
Postfix release prior to 20010524, use the following procedure
instead.
<p>
<ul>
<li>Stop Postfix, if it was running.
<p>
<li> To avoid queue file name collisions when restoring queue files,
copy or restore the incoming, active and deferred queue files under
the maildrop directory instead.
<p>
<li>While the next step is going on, don't submit new mail locally,
because that could collide with the files you are restoring under
the maildrop directory.
<p>
<li>As of late 2000, Postfix queues are all hashed (for example, file
ABCDEF is stored as A/B/ABCDEF), so you need an additional step to ABCDEF is stored as A/B/ABCDEF), so you need an additional step to
move files down from their subdirectories. move files down from their subdirectories.
@@ -3083,15 +3131,15 @@ move files down from their subdirectories.
# postfix start # postfix start
</pre> </pre>
While all this is going on, don't submit new mail locally, because
that could collide with the files you are restoring under the
maildrop directory.
<p> <p>
When Postfix is started, it will pick up queue files from the <li>When Postfix is started, it will pick up queue files from the
maildrop directory and will give them proper queue file names. maildrop directory and will give them proper queue file names.
</ul>
</ul>
<hr> <hr>
<a name="bind"><h3>Undefined symbols: ___dn_expand, ___res_init etc.</h3></a> <a name="bind"><h3>Undefined symbols: ___dn_expand, ___res_init etc.</h3></a>

View File

@@ -6,59 +6,59 @@ POSTSUPER(1) POSTSUPER(1)
<b>NAME</b> <b>NAME</b>
postsuper - Postfix super intendent postsuper - Postfix superintendent
<b>SYNOPSIS</b> <b>SYNOPSIS</b>
<b>postsuper</b> [<b>-psv</b>] [<b>-d</b> <i>queue_id</i>] [<b>-r</b> <i>queue_id</i>] [<i>directory</i> <b>postsuper</b> [<b>-psv</b>] [<b>-d</b> <i>queue_id</i>] [<b>-r</b> <i>queue_id</i>] [<i>directory</i>
<i>...</i>] <i>...</i>]
<b>DESCRIPTION</b> <b>DESCRIPTION</b>
The <b>postsuper</b> command does small maintenance jobs. Use of The <b>postsuper</b> command does maintenance jobs on the Postfix
the command is restricted to the super-user. queue. Use of the command is restricted to the super-user.
By default, <b>postsuper</b> performs the operations requested By default, <b>postsuper</b> performs the operations requested
with the <b>-s</b> and <b>-p</b> command-line options on the named Post- with the <b>-s</b> and <b>-p</b> command-line options on all Postfix
fix queue directories (default: all). Directory names are queue directories - this includes the <b>incoming</b>, <b>active</b> and
relative to the Postfix top-level queue directory. <b>deferred</b> directories with mail files and the <b>bounce</b>, <b>defer</b>
and <b>flush</b> directories with log files.
Options: Options:
<b>-d</b> This option ignores any <i>directory</i> argument(s). <b>-d</b> <i>queue_id</i>
Delete one message queue file with the named queue Delete one message with the named queue ID from the
ID. Specify multiple <b>-d</b> options to delete multiple named mail queue(s) (default: <b>incoming</b>, <b>active</b> and
queue files by name. <b>deferred</b>). If a <i>queue_id</i> of <b>-</b> is specified, the
Alternatively, if a <i>queue_id</i> of <b>-</b> is specified, the
program reads queue IDs from standard input. program reads queue IDs from standard input.
The <b>postsuper</b> exit status is non-zero when no mes- Specify <b>-d</b> <b>ALL</b> to remove all messages; for example,
sage queue file was deleted. specify <b>-d</b> <b>ALL</b> <b>deferred</b> to delete mail in the
<b>deferred</b> queue. As a safety measure, the word <b>ALL</b>
must be specified in upper case.
<b>There</b> <b>is</b> <b>a</b> <b>very</b> <b>small</b> <b>possibility</b> <b>that</b> <b>postsuper</b> <b>Postfix</b> <b>queue</b> <b>IDs</b> <b>are</b> <b>reused.</b> <b>There</b> <b>is</b> <b>a</b> <b>very</b>
<b>deletes</b> <b>the</b> <b>wrong</b> <b>message</b> <b>file</b> <b>when</b> <b>it</b> <b>is</b> <b>executed</b> <b>small</b> <b>possibility</b> <b>that</b> <b>postsuper</b> <b>deletes</b> <b>the</b> <b>wrong</b>
<b>while</b> <b>the</b> <b>Postfix</b> <b>mail</b> <b>system</b> <b>is</b> <b>running.</b> <b>message</b> <b>file</b> <b>when</b> <b>it</b> <b>is</b> <b>executed</b> <b>while</b> <b>the</b> <b>Postfix</b>
<b>mail</b> <b>system</b> <b>is</b> <b>running.</b>
The scenario is as follows: The scenario is as follows:
<b>o</b> The Postfix queue manager deletes the file 1) The Postfix queue manager deletes the mes-
that <b>postsuper</b> was supposed to delete, sage that <b>postsuper</b> is supposed to delete,
because Postfix was finished with the mes- because Postfix is finished with the mes-
sage. sage.
<b>o</b> New mail arrives, and the new message is 2) New mail arrives, and the new message is
given the same queue ID as the message that given the same queue ID as the message that
<b>postsuper</b> was supposed to delete. The prob- <b>postsuper</b> is supposed to delete. The proba-
ability for reusing a deleted queue ID is bility for reusing a deleted queue ID is
about 1 in 2**15 (the number of different about 1 in 2**15 (the number of different
microsecond values that the system clock can microsecond values that the system clock can
distinguish within a second). distinguish within a second).
<b>o</b> <b>postsuper</b> deletes the new message file, 3) <b>postsuper</b> deletes the new message, instead
instead of the old file that should have of the old message that it should have
been deleted. deleted.
<b>-r</b> This option ignores any <i>directory</i> argument(s).
Requeue one message queue file with the named queue
@@ -71,33 +71,49 @@ POSTSUPER(1) POSTSUPER(1)
POSTSUPER(1) POSTSUPER(1) POSTSUPER(1) POSTSUPER(1)
ID. Specify multiple <b>-r</b> options to requeue multi- <b>-p</b> Purge old temporary files that are left over after
ple queue files by name. system or software crashes.
Alternatively, if a <i>queue_id</i> of <b>-</b> is specified, the <b>-r</b> <i>queue_id</i>
program reads queue IDs from standard input. Requeue the message with the named queue ID from
the named mail queue(s) (default: <b>incoming</b>, <b>active</b>
and <b>deferred</b>). To requeue multiple messages, spec-
ify multiple <b>-r</b> command-line options. Alterna-
tively, if a <i>queue_id</i> of <b>-</b> is specified, the pro-
gram reads queue IDs from standard input.
The queue file is moved to the maildrop queue, from Specify <b>-r</b> <b>ALL</b> to requeue all messages. As a safety
where it is copied by the pickup daemon to a new measure, the word <b>ALL</b> must be specified in upper
file whose name is guaranteed to match the queue case.
file inode number. This feature is useful for queue
files from another machine or for files restored
from backup. The new queue file is subjected again
to address rewriting and substitution.
The <b>postsuper</b> exit status is non-zero when no mes- A requeued message is moved to the <b>maildrop</b> queue,
sage queue file was requeued. from where it is copied by the pickup daemon to a
new file whose name is guaranteed to match the new
queue file inode number. The new queue file is sub-
jected again to mail address rewriting and substi-
tution. This is useful when rewriting rules or vir-
tual mappings have changed.
<b>-s</b> Structure check. Move queue files that are in the Postfix queue IDs are reused. There is a very
wrong place in the file system hierarchy and remove small possibility that <b>postsuper</b> requeues the wrong
subdirectories that are no longer needed. File message file when it is executed while the Postfix
rearrangements are necessary after a change in the mail system is running, but no harm should be done.
<b>hash</b><i>_</i><b>queue</b><i>_</i><b>names</b> and/or <b>hash</b><i>_</i><b>queue</b><i>_</i><b>depth</b> configura-
tion parameters. It is highly recommended to run
this check once before Postfix startup.
<b>-p</b> Purge stale files (files that are left over after <b>-s</b> Structure check and structure repair. It is highly
system or software crashes). recommended to perform this operation once before
Postfix startup.
<b>o</b> Rename files whose name does not match the
message file inode number. This operation is
necessary after restoring a mail queue from
a different machine, or from backup media.
<b>o</b> Move queue files that are in the wrong place
in the file system hierarchy and remove sub-
directories that are no longer needed. File
position rearrangements are necessary after
a change in the <b>hash</b><i>_</i><b>queue</b><i>_</i><b>names</b> and/or
<b>hash</b><i>_</i><b>queue</b><i>_</i><b>depth</b> configuration parameters.
<b>-v</b> Enable verbose logging for debugging purposes. Mul- <b>-v</b> Enable verbose logging for debugging purposes. Mul-
tiple <b>-v</b> options make the software increasingly tiple <b>-v</b> options make the software increasingly
@@ -107,6 +123,24 @@ POSTSUPER(1) POSTSUPER(1)
Problems are reported to the standard error stream and to Problems are reported to the standard error stream and to
<b>syslogd</b>. <b>syslogd</b>.
<b>postsuper</b> reports the number of messages deleted with <b>-d</b>,
the number of messages requeued with <b>-r</b>, and the number of
2
POSTSUPER(1) POSTSUPER(1)
messages whose queue file name was fixed with <b>-s</b>. The
report is written to the standard error stream and to <b>sys-</b>
<b>logd</b>.
<b>CONFIGURATION</b> <b>PARAMETERS</b> <b>CONFIGURATION</b> <b>PARAMETERS</b>
See the Postfix <b>main.cf</b> file for syntax details and for See the Postfix <b>main.cf</b> file for syntax details and for
default values. default values.
@@ -125,18 +159,6 @@ POSTSUPER(1) POSTSUPER(1)
<b>AUTHOR(S)</b> <b>AUTHOR(S)</b>
Wietse Venema Wietse Venema
IBM T.J. Watson Research IBM T.J. Watson Research
2
POSTSUPER(1) POSTSUPER(1)
P.O. Box 704 P.O. Box 704
Yorktown Heights, NY 10598, USA Yorktown Heights, NY 10598, USA
@@ -151,28 +173,6 @@ POSTSUPER(1) POSTSUPER(1)

View File

@@ -4,7 +4,7 @@
.SH NAME .SH NAME
postsuper postsuper
\- \-
Postfix super intendent Postfix superintendent
.SH SYNOPSIS .SH SYNOPSIS
.na .na
.nf .nf
@@ -14,27 +14,30 @@ Postfix super intendent
.SH DESCRIPTION .SH DESCRIPTION
.ad .ad
.fi .fi
The \fBpostsuper\fR command does small maintenance jobs. Use of The \fBpostsuper\fR command does maintenance jobs on the Postfix
the command is restricted to the super-user. queue. Use of the command is restricted to the super-user.
By default, \fBpostsuper\fR performs the operations requested with the By default, \fBpostsuper\fR performs the operations requested with the
\fB-s\fR and \fB-p\fR command-line options on the named Postfix queue \fB-s\fR and \fB-p\fR command-line options on all Postfix queue
directories (default: all). directories - this includes the \fBincoming\fR, \fBactive\fR and
Directory names are relative to the Postfix top-level queue directory. \fBdeferred\fR directories with mail files and the \fBbounce\fR,
\fBdefer\fR and \fBflush\fR directories with log files.
Options: Options:
.IP \fB-d \fIqueue_id\fR .IP "\fB-d \fIqueue_id\fR"
This option ignores any \fIdirectory\fR argument(s). Delete one message with the named queue ID from the named
Delete one message queue file with the named queue ID. Specify mail queue(s) (default: \fBincoming\fR, \fBactive\fR and
multiple \fB-d\fR options to delete multiple queue files by name. \fBdeferred\fR).
If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
queue IDs from standard input.
.sp .sp
Alternatively, if a \fIqueue_id\fR of \fB-\fR is specified, the Specify \fB-d ALL\fR to remove all messages; for example, specify
program reads queue IDs from standard input. \fB-d ALL deferred\fR to delete mail in the \fBdeferred\fR queue.
.sp As a safety measure, the word \fBALL\fR must be specified in upper
The \fBpostsuper\fR exit status is non-zero when no message queue case.
file was deleted.
.sp .sp
.ft B .ft B
Postfix queue IDs are reused.
There is a very small possibility that postsuper deletes the There is a very small possibility that postsuper deletes the
wrong message file when it is executed while the Postfix mail wrong message file when it is executed while the Postfix mail
system is running. system is running.
@@ -42,47 +45,61 @@ system is running.
.sp .sp
The scenario is as follows: The scenario is as follows:
.RS .RS
.IP \(bu .IP 1)
The Postfix queue manager deletes the file that \fBpostsuper\fR The Postfix queue manager deletes the message that \fBpostsuper\fR
was supposed to delete, because Postfix was finished with the is supposed to delete, because Postfix is finished with the
message. message.
.IP \(bu .IP 2)
New mail arrives, and the new message is given the same queue ID New mail arrives, and the new message is given the same queue ID
as the message that \fBpostsuper\fR was supposed to delete. as the message that \fBpostsuper\fR is supposed to delete.
The probability for reusing a deleted queue ID is about 1 in 2**15 The probability for reusing a deleted queue ID is about 1 in 2**15
(the number of different microsecond values that the system clock (the number of different microsecond values that the system clock
can distinguish within a second). can distinguish within a second).
.IP \(bu .IP 3)
\fBpostsuper\fR deletes the new message file, instead of the \fBpostsuper\fR deletes the new message, instead of the old
old file that should have been deleted. message that it should have deleted.
.RE .RE
.IP \fB-r \fIqueue_id\fR
This option ignores any \fIdirectory\fR argument(s).
Requeue one message queue file with the named queue ID. Specify
multiple \fB-r\fR options to requeue multiple queue files by name.
.sp
Alternatively, if a \fIqueue_id\fR of \fB-\fR is specified, the
program reads queue IDs from standard input.
.sp
The queue file is moved to the maildrop queue, from where
it is copied by the pickup daemon to a new file whose name
is guaranteed to match the queue file inode number. This
feature is useful for queue files from another machine or
for files restored from backup. The new queue file is
subjected again to address rewriting and substitution.
.sp
The \fBpostsuper\fR exit status is non-zero when no message queue
file was requeued.
.IP \fB-s\fR
Structure check. Move queue files that are in the wrong place
in the file system hierarchy and remove subdirectories that are
no longer needed. File rearrangements are necessary after a change
in the \fBhash_queue_names\fR and/or \fBhash_queue_depth\fR
configuration parameters. It is highly recommended to run this
check once before Postfix startup.
.IP \fB-p\fR .IP \fB-p\fR
Purge stale files (files that are left over after system or Purge old temporary files that are left over after system or
software crashes). software crashes.
.IP "\fB-r \fIqueue_id\fR"
Requeue the message with the named queue ID from the named
mail queue(s) (default: \fBincoming\fR, \fBactive\fR and
\fBdeferred\fR).
To requeue multiple messages, specify multiple \fB-r\fR
command-line options.
Alternatively, if a \fIqueue_id\fR of \fB-\fR is specified,
the program reads queue IDs from standard input.
.sp
Specify \fB-r ALL\fR to requeue all messages. As a safety
measure, the word \fBALL\fR must be specified in upper case.
.sp
A requeued message is moved to the \fBmaildrop\fR queue, from
where it is copied by the pickup daemon to a new file whose name
is guaranteed to match the new queue file inode number. The
new queue file is subjected again to mail address rewriting and
substitution. This is useful when rewriting rules or virtual
mappings have changed.
.sp
Postfix queue IDs are reused.
There is a very small possibility that \fBpostsuper\fR requeues
the wrong message file when it is executed while the Postfix mail
system is running, but no harm should be done.
.IP \fB-s\fR
Structure check and structure repair. It is highly recommended
to perform this operation once before Postfix startup.
.RS
.IP \(bu
Rename files whose name does not match the message file inode
number. This operation is necessary after restoring a mail queue
from a different machine, or from backup media.
.IP \(bu
Move queue files that are in the wrong place in the file system
hierarchy and remove subdirectories that are no longer needed.
File position rearrangements are necessary after a change in the
\fBhash_queue_names\fR and/or \fBhash_queue_depth\fR
configuration parameters.
.RE
.IP \fB-v\fR .IP \fB-v\fR
Enable verbose logging for debugging purposes. Multiple \fB-v\fR Enable verbose logging for debugging purposes. Multiple \fB-v\fR
options make the software increasingly verbose. options make the software increasingly verbose.
@@ -91,6 +108,11 @@ options make the software increasingly verbose.
.fi .fi
Problems are reported to the standard error stream and to Problems are reported to the standard error stream and to
\fBsyslogd\fR. \fBsyslogd\fR.
\fBpostsuper\fR reports the number of messages deleted with \fB-d\fR,
the number of messages requeued with \fB-r\fR, and the number of
messages whose queue file name was fixed with \fB-s\fR. The report
is written to the standard error stream and to \fBsyslogd\fR.
.SH CONFIGURATION PARAMETERS .SH CONFIGURATION PARAMETERS
.na .na
.nf .nf

View File

@@ -65,7 +65,7 @@ const char *get_file_id(int fd)
result = vstring_alloc(1); result = vstring_alloc(1);
if (fstat(fd, &st) < 0) if (fstat(fd, &st) < 0)
msg_fatal("fstat: %m"); msg_fatal("fstat: %m");
vstring_sprintf(result, "%X", (int) st.st_ino); vstring_sprintf(result, "%lX", (long) st.st_ino);
return (vstring_str(result)); return (vstring_str(result));
} }

View File

@@ -388,11 +388,13 @@ VSTREAM *mail_queue_enter(const char *queue_name, int mode)
for (count = 0;; count++) { for (count = 0;; count++) {
vstring_sprintf(id_buf, "%05X%s", (int) tv.tv_usec, file_id); vstring_sprintf(id_buf, "%05X%s", (int) tv.tv_usec, file_id);
mail_queue_path(path_buf, queue_name, STR(id_buf)); mail_queue_path(path_buf, queue_name, STR(id_buf));
#if 0
if (access(STR(path_buf), X_OK) == 0) { /* collision. */ if (access(STR(path_buf), X_OK) == 0) { /* collision. */
if ((int) ++tv.tv_usec < 0) if ((int) ++tv.tv_usec < 0)
tv.tv_usec = 0; tv.tv_usec = 0;
continue; continue;
} }
#endif
if (sane_rename(STR(temp_path), STR(path_buf)) == 0) /* success */ if (sane_rename(STR(temp_path), STR(path_buf)) == 0) /* success */
break; break;
if (errno == EPERM || errno == EISDIR) {/* collision. weird. */ if (errno == EPERM || errno == EISDIR) {/* collision. weird. */

View File

@@ -15,7 +15,7 @@
* Version of this program. * Version of this program.
*/ */
#define VAR_MAIL_VERSION "mail_version" #define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "Snapshot-20010522" #define DEF_MAIL_VERSION "Snapshot-20010524"
extern char *var_mail_version; extern char *var_mail_version;
/* LICENSE /* LICENSE

File diff suppressed because it is too large Load Diff

View File

@@ -584,6 +584,8 @@ static const char *dict_ldap_lookup(DICT *dict, const char *name)
ldap_msgfree(res); ldap_msgfree(res);
if (filter_buf != 0) if (filter_buf != 0)
vstring_free(filter_buf); vstring_free(filter_buf);
if (escaped_name != 0)
vstring_free(escaped_name);
/* /*
* If we had an error, return nothing, Otherwise, return the result, if * If we had an error, return nothing, Otherwise, return the result, if