busybox/miscutils/bbconfig.c
<<
>>
Prefs
   1/* vi: set sw=4 ts=4: */
   2/* This file was released into the public domain by Paul Fox.
   3 */
   4
   5//usage:#define bbconfig_trivial_usage
   6//usage:       ""
   7//usage:#define bbconfig_full_usage "\n\n"
   8//usage:       "Print the config file used by busybox build"
   9
  10#include "libbb.h"
  11#include "bbconfigopts.h"
  12#if ENABLE_FEATURE_COMPRESS_BBCONFIG
  13# include "bb_archive.h"
  14# include "bbconfigopts_bz2.h"
  15#endif
  16
  17int bbconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  18int bbconfig_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
  19{
  20#if ENABLE_FEATURE_COMPRESS_BBCONFIG
  21        bunzip_data *bd;
  22        int i = start_bunzip(&bd,
  23                        /* src_fd: */ -1,
  24                        /* inbuf:  */ bbconfig_config_bz2,
  25                        /* len:    */ sizeof(bbconfig_config_bz2));
  26        /* read_bunzip can longjmp to start_bunzip, and ultimately
  27         * end up here with i != 0 on read data errors! Not trivial */
  28        if (!i) {
  29                /* Cannot use xmalloc: will leak bd in NOFORK case! */
  30                char *outbuf = malloc_or_warn(sizeof(bbconfig_config));
  31                if (outbuf) {
  32                        read_bunzip(bd, outbuf, sizeof(bbconfig_config));
  33                        full_write1_str(outbuf);
  34                }
  35        }
  36#else
  37        full_write1_str(bbconfig_config);
  38#endif
  39        return 0;
  40}
  41