/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/plymouth.c

  • Committer: Teddy Hogeborn
  • Date: 2010-11-16 17:58:49 UTC
  • Revision ID: teddy@fukt.bsnet.se-20101116175849-m0fttdoskhahgyup
* plugins.d/plymouth.c: Fixed comment to "Plymouth" instead of "Usplash".
 (makeprompt): Mimic the default prompt.
 (exec_and_wait): Correct type of "tmp"; remove cast.  Also remove
                  unnecessary cast of NULL.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*  -*- coding: utf-8 -*- */
2
2
/*
3
 
 * Usplash - Read a password from usplash and output it
 
3
 * Plymouth - Read a password from Plymouth and output it
4
4
 * 
5
5
 * Copyright © 2010 Teddy Hogeborn
6
6
 * Copyright © 2010 Björn Påhlsson
76
76
  char *prompt;
77
77
  const char *const cryptsource = getenv("cryptsource");
78
78
  const char *const crypttarget = getenv("crypttarget");
79
 
  const char prompt_start[] = "Enter passphrase to unlock the disk";
 
79
  const char prompt_start[] = "Unlocking the disk";
 
80
  const char prompt_end[] = "Enter passphrase";
80
81
  
81
82
  if(cryptsource == NULL){
82
83
    if(crypttarget == NULL){
83
 
      ret = asprintf(&prompt, "%s: ", prompt_start);
 
84
      ret = asprintf(&prompt, "%s\n%s", prompt_start, prompt_end);
84
85
    } else {
85
 
      ret = asprintf(&prompt, "%s (%s): ", prompt_start,
86
 
                     crypttarget);
 
86
      ret = asprintf(&prompt, "%s (%s)\n%s", prompt_start,
 
87
                     crypttarget, prompt_end);
87
88
    }
88
89
  } else {
89
90
    if(crypttarget == NULL){
90
 
      ret = asprintf(&prompt, "%s %s: ", prompt_start, cryptsource);
 
91
      ret = asprintf(&prompt, "%s %s\n%s", prompt_start, cryptsource,
 
92
                     prompt_end);
91
93
    } else {
92
 
      ret = asprintf(&prompt, "%s %s (%s): ", prompt_start,
93
 
                     cryptsource, crypttarget);
 
94
      ret = asprintf(&prompt, "%s %s (%s)\n%s", prompt_start,
 
95
                     cryptsource, crypttarget, prompt_end);
94
96
    }
95
97
  }
96
98
  if(ret == -1){
142
144
        _exit(EX_OSERR);
143
145
      }
144
146
    }
145
 
 
 
147
    
146
148
    char **new_argv = NULL;
147
 
    char *tmp;
 
149
    char **tmp;
148
150
    int i = 0;
149
 
    for (; argv[i]!=(char *)NULL; i++){
 
151
    for (; argv[i]!=NULL; i++){
150
152
      tmp = realloc(new_argv, sizeof(const char *) * ((size_t)i + 1));
151
153
      if (tmp == NULL){
152
154
        error(0, errno, "realloc");
153
155
        free(new_argv);
154
156
        _exit(EX_OSERR);
155
157
      }
156
 
      new_argv = (char **)tmp;
 
158
      new_argv = tmp;
157
159
      new_argv[i] = strdup(argv[i]);
158
160
    }
159
 
    new_argv[i] = (char *) NULL;
 
161
    new_argv[i] = NULL;
160
162
    
161
163
    execv(path, (char *const *)new_argv);
162
164
    error(0, errno, "execv");