/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugins.d/askpass-fifo.c

  • Committer: Teddy Hogeborn
  • Date: 2014-06-06 03:00:24 UTC
  • mfrom: (237.4.47 release)
  • Revision ID: teddy@recompile.se-20140606030024-23a8yaq311r17v6l
Merge from release branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*
3
3
 * Askpass-FIFO - Read a password from a FIFO and output it
4
4
 * 
5
 
 * Copyright © 2008-2011 Teddy Hogeborn
6
 
 * Copyright © 2008-2011 Björn Påhlsson
 
5
 * Copyright © 2008-2014 Teddy Hogeborn
 
6
 * Copyright © 2008-2014 Björn Påhlsson
7
7
 * 
8
8
 * This program is free software: you can redistribute it and/or
9
9
 * modify it under the terms of the GNU General Public License as
19
19
 * along with this program.  If not, see
20
20
 * <http://www.gnu.org/licenses/>.
21
21
 * 
22
 
 * Contact the authors at <mandos@fukt.bsnet.se>.
 
22
 * Contact the authors at <mandos@recompile.se>.
23
23
 */
24
24
 
25
25
#define _GNU_SOURCE             /* TEMP_FAILURE_RETRY() */
32
32
                                   ENFILE, ENOMEM, EBADF, EINVAL, EIO,
33
33
                                   EISDIR, EFBIG */
34
34
#include <error.h>              /* error() */
35
 
#include <stdio.h>              /* fprintf(), vfprintf(), vasprintf() */
 
35
#include <stdio.h>              /* fprintf(), vfprintf(),
 
36
                                   vasprintf() */
36
37
#include <stdlib.h>             /* EXIT_FAILURE, NULL, size_t, free(),
37
38
                                   realloc(), EXIT_SUCCESS */
38
39
#include <fcntl.h>              /* open(), O_RDONLY */
45
46
 
46
47
 
47
48
/* Function to use when printing errors */
48
 
void error_plus(int status, int errnum, const char *formatstring, ...){
 
49
__attribute__((format (gnu_printf, 3, 4)))
 
50
void error_plus(int status, int errnum, const char *formatstring,
 
51
                ...){
49
52
  va_list ap;
50
53
  char *text;
51
54
  int ret;
52
55
  
53
56
  va_start(ap, formatstring);
54
57
  ret = vasprintf(&text, formatstring, ap);
55
 
  if (ret == -1){
56
 
    fprintf(stderr, "Mandos plugin %s: ", program_invocation_short_name);
 
58
  if(ret == -1){
 
59
    fprintf(stderr, "Mandos plugin %s: ",
 
60
            program_invocation_short_name);
57
61
    vfprintf(stderr, formatstring, ap);
58
62
    fprintf(stderr, ": ");
59
63
    fprintf(stderr, "%s\n", strerror(errnum));