File support.c


Included Files


Global Variable magpie_module

struct magpie_module magpie_module
Included from magpie.h
Visible in:  magpie.c
   mod_conffiles.c
   mod_core.c
   mod_debian.c
   mod_installed.c
   mod_isizes.c
   mod_keywords.c
   mod_maintainers.c
   mod_md5sums.c
   mod_names.c
   mod_priorities.c
   mod_sections.c
   mod_setuids.c
   mod_sizes.c
   mod_sources.c
   mod_tasks.c
   mod_xml.c
   support.c

Local Variables

rcsid
static const char rcsid[]

Global Function gzip()

Compress the specified file.

int gzip ( const char* filename )
Prototyped in: magpie.h
Calls: execl(), exit(), fork(), geteuid(), printf(), setuid(), waitpid()
Called by: conffiles_init()mod_conffiles.c
  dump_details()mod_setuids.c
  installed_init()mod_installed.c
  isize_init()mod_isizes.c
  keywords_index()mod_keywords.c
  keywords_init()mod_keywords.c
  maintainers_init()mod_maintainers.c
  md5sums_init()mod_md5sums.c
  names_init()mod_names.c
  pass3()mod_core.c
  pass5()mod_core.c
  pass_last()mod_core.c
  priorities_index()mod_priorities.c
  priorities_init()mod_priorities.c
  sections_details()mod_sections.c
  sections_index()mod_sections.c
  sizes_init()mod_sizes.c
  sources_init()mod_sources.c
  tasks_init()mod_tasks.c
  xml_packages()mod_xml.c
  xml_status()mod_xml.c


Global Function md5sum()

Check the MD5 checksums. I want to do this with fork/exec, but the usual code never seems to see the EOF. Obviously I'm missing some key system call. We change our fsuid to root so we can open the files, but don't open the rest of the risks of running a subshell as root.

FILE* md5sum ( const char* filename )
Calls: popen(), setfsuid(), sprintf()
Called by: conffiles_init()mod_conffiles.c
  pass5()mod_core.c


Global Function rmrf()

Recursively remove all files under the specified root.

int rmrf ( const char* basename )
Calls: rmrf()support.c
  closedir(), opendir(), readdir(), rmdir(), sprintf(), stat(), strcmp(), unlink()
Called by: core_cleanup()mod_core.c
  main()magpie.c
  rmrf()support.c