/mandos/release

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

« back to all changes in this revision

Viewing changes to plugins.d/plymouth.c

  • Committer: Teddy Hogeborn
  • Date: 2014-03-10 06:55:54 UTC
  • mto: (237.7.272 trunk)
  • mto: This revision was merged to the branch mainline in revision 311.
  • Revision ID: teddy@recompile.se-20140310065554-of3kz8jdhlll42l3
Use "struct sockaddr_storage" instead of a union in mandos-client.

Apparently using struct sockaddr_storage the way POSIX intended is
incompatible with strict aliasing, so turn that off in the Makefile.

* plugins.d/mandos-client.c (start_mandos_communication): Change "to"
                                                          from a union
                                                          to a struct
                                                          sockaddr_storage.
* Makefile (OPTIMIZE): Add "-fno-strict-aliasing".

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*
3
3
 * Plymouth - Read a password from Plymouth and output it
4
4
 * 
5
 
 * Copyright © 2010-2012 Teddy Hogeborn
6
 
 * Copyright © 2010-2012 Björn Påhlsson
 
5
 * Copyright © 2010-2013 Teddy Hogeborn
 
6
 * Copyright © 2010-2013 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
156
156
 
157
157
__attribute__((nonnull (2, 3)))
158
158
bool exec_and_wait(pid_t *pid_return, const char *path,
159
 
                   const char **argv, bool interruptable,
 
159
                   const char * const *argv, bool interruptable,
160
160
                   bool daemonize){
161
161
  int status;
162
162
  int ret;
312
312
  return 0;
313
313
}
314
314
 
315
 
const char **getargv(pid_t pid){
 
315
const char * const * getargv(pid_t pid){
316
316
  int cl_fd;
317
317
  char *cmdline_filename;
318
318
  ssize_t sret;
379
379
    return NULL;
380
380
  }
381
381
  argz_extract(cmdline, cmdline_len, argv); /* Create argv */
382
 
  return (const char **)argv;
 
382
  return (const char * const *)argv;
383
383
}
384
384
 
385
385
int main(__attribute__((unused))int argc,
460
460
  }
461
461
  kill_and_wait(plymouth_command_pid);
462
462
  
463
 
  const char **plymouthd_argv;
 
463
  const char * const *plymouthd_argv;
464
464
  pid_t pid = get_pid();
465
465
  if(pid == 0){
466
466
    error_plus(0, 0, "plymouthd pid not found");