/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: 2024-11-17 16:53:00 UTC
  • mto: This revision was merged to the branch mainline in revision 412.
  • Revision ID: teddy@recompile.se-20241117165300-02hxm96s8cj9528e
mandos: Avoid closing configured server network socket

If we are passed a pre-created created network socket as a file
descriptor, we must avoid later closing it (when stdin, stdout and
stderr are dup2()ed over with /dev/null) by making sure that the
network file descriptor is not 0, 1, or 2, by creating a new file
descriptor if necessary.

However, when we create a new file descriptor we must check that the
new file descriptor is not 0, 1, or 2 either, and try again until we
get a suitable file descriptor.

Show diffs side-by-side

added added

removed removed

Lines of Context:
372
372
      error_plus(0, errno, "scandir");
373
373
    }
374
374
    if(ret > 0){
375
 
      for(int i = ret-1; i >= 0; i--){
 
375
      const int num_entries = ret;
 
376
      for(int i = 0; i < num_entries; i++){
376
377
        if(proc_id == 0){
377
378
          ret = sscanf(direntries[i]->d_name, "%" SCNuMAX, &proc_id);
378
379
          if(ret < 0){