/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/password-prompt.c

  • Committer: Teddy Hogeborn
  • Date: 2014-03-06 02:26:04 UTC
  • Revision ID: teddy@recompile.se-20140306022604-4uc43taz25cflgi3
Bug fix: Free all memory and give better messages when memory is full.

* plugin-runner.c (add_to_char_array): Bug fix: If realloc fails, do
                                       not change old array pointer.
  (add_environment): Bug fix: If realloc fails, do not change old
                     environment pointer.  Also rename "e" to "envdef"
                     for clarity.
  (main): Bug fix: If realloc fails, do not change old pointers.  Also
          wrap "#pragma GCC" with "#ifdef ___GNUC___".
* plugins.d/mandos-client.c (incbuffer): Bug fix: if realloc fails,
                                         free old buffer.
  (run_network_hooks): Moved variables "directory" and "ret" to their
                       innermost possible scope.
  (take_down_interface): Moved variables "sd", "ret_errno", and
                         "ret_setflags" to their innermost possible
                         scope.
  (main): Removed variable "interfaces_hooks_size".  Also, if argz_add
          fails when adding all found interfaces, the error message
          will now be correct.  Also print error message if, after
          having taken up an interface, argz_add fails to add
          interface to list of interfaces to be taken down.
* plugins.d/mandos-client.xml (OPTIONS): Explain better what "none"
                                         means as argument to
                                         "--interface" by negating
                                         sense.
* plugins.d/password-prompt.c (fprintf_plus): Removed (unused).

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*
3
3
 * Password-prompt - Read a password from the terminal and print it
4
4
 * 
5
 
 * Copyright © 2008-2019 Teddy Hogeborn
6
 
 * Copyright © 2008-2019 Björn Påhlsson
7
 
 * 
8
 
 * This file is part of Mandos.
9
 
 * 
10
 
 * Mandos is free software: you can redistribute it and/or modify it
11
 
 * under the terms of the GNU General Public License as published by
12
 
 * the Free Software Foundation, either version 3 of the License, or
13
 
 * (at your option) any later version.
14
 
 * 
15
 
 * Mandos is distributed in the hope that it will be useful, but
 
5
 * Copyright © 2008-2013 Teddy Hogeborn
 
6
 * Copyright © 2008-2013 Björn Påhlsson
 
7
 * 
 
8
 * This program is free software: you can redistribute it and/or
 
9
 * modify it under the terms of the GNU General Public License as
 
10
 * published by the Free Software Foundation, either version 3 of the
 
11
 * License, or (at your option) any later version.
 
12
 * 
 
13
 * This program is distributed in the hope that it will be useful, but
16
14
 * WITHOUT ANY WARRANTY; without even the implied warranty of
17
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18
16
 * General Public License for more details.
19
17
 * 
20
18
 * You should have received a copy of the GNU General Public License
21
 
 * along with Mandos.  If not, see <http://www.gnu.org/licenses/>.
 
19
 * along with this program.  If not, see
 
20
 * <http://www.gnu.org/licenses/>.
22
21
 * 
23
22
 * Contact the authors at <mandos@recompile.se>.
24
23
 */
83
82
  
84
83
  va_start(ap, formatstring);
85
84
  ret = vasprintf(&text, formatstring, ap);
86
 
  if(ret == -1){
 
85
  if (ret == -1){
87
86
    fprintf(stderr, "Mandos plugin %s: ",
88
87
            program_invocation_short_name);
89
88
    vfprintf(stderr, formatstring, ap);
213
212
  struct dirent **direntries = NULL;
214
213
  int ret;
215
214
  ret = scandir("/proc", &direntries, is_plymouth, alphasort);
216
 
  if(ret == -1){
 
215
  if (ret == -1){
217
216
    error_plus(1, errno, "scandir");
218
217
  }
219
 
  {
220
 
    int i = ret;
221
 
    while(i--){
222
 
      free(direntries[i]);
223
 
    }
224
 
  }
225
218
  free(direntries);
226
219
  return ret > 0;
227
220
}
274
267
        argp_state_help(state, state->out_stream,
275
268
                        (ARGP_HELP_STD_HELP | ARGP_HELP_EXIT_ERR)
276
269
                        & ~(unsigned int)ARGP_HELP_EXIT_OK);
277
 
        __builtin_unreachable();
278
270
      case -3:                  /* --usage */
279
271
        argp_state_help(state, state->out_stream,
280
272
                        ARGP_HELP_USAGE | ARGP_HELP_EXIT_ERR);
281
 
        __builtin_unreachable();
282
273
      case 'V':                 /* --version */
283
274
        fprintf(state->out_stream, "%s\n", argp_program_version);
284
275
        exit(argp_err_exit_status);
312
303
    fprintf(stderr, "Starting %s\n", argv[0]);
313
304
  }
314
305
 
315
 
  if(conflict_detection()){
 
306
  if (conflict_detection()){
316
307
    if(debug){
317
308
      fprintf(stderr, "Stopping %s because of conflict\n", argv[0]);
318
309
    }