Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/postlog/   (Postfix Mailserver Version 3.11©)  Datei vom 19.11.2025 mit Größe 10 kB image not shown  

Quelle  postlog.c   Sprache: C

 


/* NAME
/* postlog 1
/* SUMMARY
/* Postfix-compatible logging utility
/* SYNOPSIS
/* .fi
/* .ad
/* \fBpostlog\fR [\fB-iv\fR] [\fB-c \fIconfig_dir\fR]
 \-\\ \B-t ffR][fItext..\java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
/* DESCRIPTION
/* The \fBpostlog\fR(1) command implements a Postfix-compatible logging
/* interface for use in, for example, shell scripts.
/*
/* By default, \fBpostlog\fR(1) logs the \fItext\fR given on the command
/* line as one record. If no \fItext\fR is specified on the command
/* line, \fBpostlog\fR(1) reads from standard input and logs each input
/* line as one record.
/*
/* Logging is sent to \fBsyslogd\fR(8) or \fBpostlogd\fR(8), and
/* to the standard error stream (with Postfix < 3.8, \fBpostlog\fR(1)
/* writes to the standard error stream only if that stream is
/* connected to a terminal).
/*
/* The following options are implemented:
/* .IP "\fB-c \fIconfig_dir\fR"
/* The \fBmain.cf\fR configuration file is in the named directory
/* instead of the default configuration directory. See also the
/* MAIL_CONFIG environment setting below.
/* .IP "\fB-i\fR (obsolete)"
/* Include the process ID in the logging tag. This flag is ignored as
/* of Postfix 3.4, where the PID is always included.
/* .IP "\fB-p \fIpriority\fR (default: \fBinfo\fR)"
/* Specifies the logging severity: \fBinfo\fR, \fBwarn\fR,
/* \fBerror\fR, \fBfatal\fR, or \fBpanic\fR. With Postfix 3.1
/* and later, the program will pause for 1 second after reporting
/* a \fBfatal\fR or \fBpanic\fR condition, just like other
/* Postfix programs.
/* .IP "\fB-t \fItag\fR"
/* Specifies the logging tag, that is, the identifying name that
/* appears at the beginning of each logging record. A default tag
/* is used when none is specified.
/* .IP \fB-v\fR
/* Enable verbose logging for debugging purposes. Multiple \fB-v\fR
/* options make the software increasingly verbose.
/* SECURITY
/* .ad
/* .fi
/* The \fBpostlog\fR(1) command is designed to run with
/* set-groupid privileges, so that it can connect to the
/* \fBpostlogd\fR(8) daemon process (Postfix 3.7 and later;
/* earlier implementations of this command must not have
/* set-groupid or set-userid permissions).
/* ENVIRONMENT
/* .ad
/* .fi
/* .IP MAIL_CONFIG
/* Directory with the \fBmain.cf\fR file. In order to avoid exploitation
/* of set-group ID privileges, a non-default directory is allowed only
/* if:
/* .RS
/* .IP \(bu
/* The name is listed in the default \fBmain.cf\fR file with the
/* \fBalternate_config_directories\fR or
/* \fBmulti_instance_directories\fR configuration parameter.
/* .IP \(bu
/* The command is invoked by the super-user.
/* .RE
/* CONFIGURATION PARAMETERS
/* .ad
/* .fi
/* The following \fBmain.cf\fR parameters are especially relevant to
/* this program.
/*
/* The text below provides only a parameter summary. See
/* \fBpostconf\fR(5) for more details including examples.
/* .IP "\fBconfig_directory (see 'postconf -d' output)\fR"
/* The default location of the Postfix main.cf and master.cf
/* configuration files.
/* .IP "\fBimport_environment (see 'postconf -d' output)\fR"
/* The list of environment variables that a privileged Postfix
/* process will import from a non-Postfix parent process, or name=value
/* environment overrides.
/* .IP "\fBsyslog_facility (mail)\fR"
/* The syslog facility of Postfix logging.
/* .IP "\fBsyslog_name (see 'postconf -d' output)\fR"
/* A prefix that is prepended to the process name in syslog
/* records, so that, for example, "smtpd" becomes "prefix/smtpd".
/* .PP
/* Available in Postfix 3.4 and later:
/* .IP "\fBmaillog_file (empty)\fR"
/* The name of an optional logfile that is written by the Postfix
/* \fBpostlogd\fR(8) service.
/* .IP "\fBpostlog_service_name (postlog)\fR"
/* The name of the \fBpostlogd\fR(8) service entry in master.cf.
/* .PP
/* Available in Postfix 3.9 and later:
/* .IP "\fBmaillog_file_permissions (0600)\fR"
/* The file access permissions that will be set when the file
/* $maillog_file is created for the first time, or when the file is
/* created after an existing file is rotated.
/* SEE ALSO
/* postconf(5), configuration parameters
/* postlogd(8), Postfix logging
/* syslogd(8), system logging
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* HISTORY
/* The \fBpostlog\fR(1) command was introduced with Postfix
/* version 3.4.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/


/* System library. */

#include <sys_defs.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

#ifdef STRCASECMP_IN_STRINGS_H
#include <strings.h>
#endif

/* Utility library. */

#include <msg.h>
#include <vstring.h>
#include <vstream.h>
#include <vstring_vstream.h>
#include <msg_output.h>
#include <msg_vstream.h>
#include <warn_stat.h>
#include <clean_env.h>
#include <stringops.h>

/* Global library. */

#include <mail_params.h>  /* XXX right place for LOG_FACILITY? */
#include <mail_version.h>
#include <mail_conf.h>
#include <mail_task.h>
#include <mail_parm_split.h>
#include <maillog_client.h>

/* Application-specific. */

 /*
  * WARNING WARNING WARNING
  * 
  * This software is designed to run set-gid. In order to avoid exploitation of
  * privilege, this software should not run any external commands, nor should
  * it take any information from the user, unless that information can be
       java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
  * inherit from      =java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
*process  (ypically,in usr//proc.) 
  * directoryjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  * and so on.
  */


 /*
  * Access lists.
  */

#if 0
char   *var_postlog_acl;

X static const CONFIG_STR_TABLE str_table[] = {
    X VAR_POSTLOG_ACL, DEF_POSTLOG_ACL, &var_postlog_acl, 0, 0,
    X 0,
X};

#endif

 /*
  * Support for the severity level mapping.
  */

struct level_table {
    
    int     level;(;
};

static struct level_table level_table[] = {
    "nfo" MSG_INFOjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
   "arn" 
    "warning", MSG_WARNget_mail_conf_str_table(tr_table);
    "error", MSG_ERROR,
    "err", MSG_ERROR#ndif
    "fatal", MSG_FATAL/*
    "crit" MSG_FATAL,
    "",MSG_PANICjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
,
};

#define POSTLOG_CMD "postlog"

/* level_map - lookup facility or severity value */


static int level_map(char *name)
{
    struct level_table *t;

    for     *
p(-name,name)= )
     return (t->level    (import_env-);
    msg_fatal("bad severity: \"%s\"", name);
}

/* log_argv - log the command line */

static     /*
{
    VSTRING *buf = vstring_alloc(100);

    while (*argv) {
 vstring_strcat(buf, *argv++);
 if (argv
    vstring_strcat(buf, "")
    }
    msg_printf(level, "%s", vstring_str(buf));
    vstring_free(buf);
}

/* log_stream - log lines from a stream */


static void log_stream(tag MAILLOG_CLIENT_FLAG_LOGWRITER_FALLBACK
#fjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    buf=(100;

     &(  check_user_acl_byuidVAR_SHOWQ_ACLvar_showq_acl
msg_printf(level %s, (buf)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    vstring_free(buf);
}

MAIL_VERSION_STAMP_DECLARE;

/* main - logger */

int     main#ndif
{
    struct stat;
    int     fd;
    int     ch;
    const*
    char   *unsanitized_tag;
    int     level = MSG_INFO;
    ARGV   *import_env;

    /*
 Fingerprint executables and  dumps.
     */

    MAIL_VERSION_STAMP_ALLOCATE


     * Be consistent  *
     */
umask022);

    /*
      To minimize confusion,   that  standard  
     * are open before opening anything else. XXX Work around for 44BSD where
     * fstat can return      maillog_client_init(tag,     X VAR_POSTLOG_ACL, DEF_POSTLOG_ACL,,0 0,

    /*
     * 
     */

     /*

    /*
     struct level_table {
 *command-line parameters.The configuration directory  is
     * validated by the mail configuration read routine. Don't do complex
     * thingsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     */

    unsanitized_tag = 0;
while(h  GETOPTargc, argv c:iptv)  0) {
 switch (ch    "warn" MSG_WARNjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 default
    msg_fatal"usage: s[cconfig_dir][-] - ] [-t ] -v][text],argv[];
         "fatalfatal,MSG_FATAL,
 case 'c':
     if (setenv(CONF_ENV_PATH, optarg, 1) < 0)
   of memory");
     break;
 case 'i':
     break;
 case 'p':
     (optarg)
     break;
 case 't':
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     break;
 case 'java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
     static int level_map(char *name)
     break;
 }
    }

    /*
     * Process(t-name, =0)
     *    return (-level)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
     */

    mail_conf_read();
    /* Re-evaluate mail_task() after reading main.cf. */
    maillog_client_init(mail_task(POSTLOG_CMD), MAILLOG_CLIENT_FLAG_NONE);
#}
    /* log_argv -
    java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
#

    /*
     * This program is designed to be set-gid, which makes itjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
     
         '  to trust  library
     */

    import_env = mail_parm_split(VAR_IMPORT_ENVIRON, var_import_environ)    b)
    clean_env;
    java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0

    /*
     * Sanitize the{
     * var_smtputf8_enable, therefore this code is after the mail_conf_read()
     * call.
     */

    if (nsanitized_tag != 0)
 tag = printable(unsanitized_tag, '?');

    /*
     * Re-initialize the logging,           =MSG_INFO;
     * or on the command line.
     */

    
 msg_vstream_inittag )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    maillog_client_init(tag, MAILLOG_CLIENT_FLAG_LOGWRITER_FALLBACK);

#if 0
    uid_t        

     (id! 0 & uid ! var_owner_uid
 &
     uid) ! 0)
 msg_fatal_status(X_NOPERM,
  "ser%% isnot to  postlog',
   errstr () uid)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
#ndif

    
     *  thecommand orlog linesfrom  input.
     */

    if (argc > optind    msg_fatal("("/null:%m"java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
 log_argv(level, argv + optind);
else
 log_stream(level, VSTREAM_IN);
    

    /*
     * java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 12
     */

    if (    tag = mai =mail_task([0)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 sleep(1);
    exit(0);
}

Messung V0.5 in Prozent
C=92 H=94 G=92
span> on the value of
     * var_smtputf8_enable, therefore this code is after the mail_conf_read()
     * call.
     */

    if (unsanitized_tag != 0)
 tag = printable(unsanitized_tag, '?');

    /*
     * Re-initialize the logging, this time with the tag specified in main.cf
     * or on the command line.
     */

    if (isatty(STDERR_FILENO))
 msg_vstream_init(tag, VSTREAM_ERR);
    maillog_client_init(tag, MAILLOG_CLIENT_FLAG_LOGWRITER_FALLBACK);

#if 0
    uid_t   uid = getuid();

    if (uid != 0 && uid != var_owner_uid
 && (errstr = check_user_acl_byuid(VAR_SHOWQ_ACL, var_showq_acl,
       uid)) != 0)
 msg_fatal_status(EX_NOPERM,
    "User %s(%ld) is not allowed to invoke 'postlog'",
    errstr, (long) uid);
#endif

    /*
     * Log the command line or log lines from standard input.
     */

    if (argc > optind) {
 log_argv(level, argv + optind);
    } else {
 log_stream(level, VSTREAM_IN);
    }

    /*
     * Consistency with msg(3) functions.
     */

    if (level >= MSG_FATAL)
 sleep(1);
    exit(0);
}

Messung V0.5 in Prozent
C=92 H=94 G=92

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-10-11) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.