Mageia Bugzilla – Attachment 10447 Details for
Bug 23561
iniparser new security issue rhbz#1545824
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
The example program I found
iniexample.c (text/x-csrc), 2.30 KB, created by
Brian Rockwell
on 2018-11-03 16:15:38 CET
(
hide
)
Description:
The example program I found
Filename:
MIME Type:
Creator:
Brian Rockwell
Created:
2018-11-03 16:15:38 CET
Size:
2.30 KB
patch
obsolete
>#include <stdio.h> >#include <stdlib.h> >#include <string.h> >#include <unistd.h> > >#include "/usr/include/iniparser.h" > >void create_example_ini_file(void); >int parse_ini_file(char * ini_name); > >int main(int argc, char * argv[]) >{ > int status ; > > if (argc<2) { > create_example_ini_file(); > status = parse_ini_file("example.ini"); > } else { > status = parse_ini_file(argv[1]); > } > return status ; >} > >void create_example_ini_file(void) >{ > FILE * ini ; > > if ((ini=fopen("example.ini", "w"))==NULL) { > fprintf(stderr, "iniparser: cannot create example.ini\n"); > return ; > } > > fprintf(ini, > "#\n" > "# This is an example of ini file\n" > "#\n" > "\n" > "[Pizza]\n" > "\n" > "Ham = yes ;\n" > "Mushrooms = TRUE ;\n" > "Capres = 0 ;\n" > "Cheese = Non ;\n" > "\n" > "\n" > "[Wine]\n" > "\n" > "Grape = Cabernet Sauvignon ;\n" > "Year = 1989 ;\n" > "Country = Spain ;\n" > "Alcohol = 12.5 ;\n" > "\n"); > fclose(ini); >} > > >int parse_ini_file(char * ini_name) >{ > dictionary * ini ; > > /* Some temporary variables to hold query results */ > int b ; > int i ; > double d ; > const char * s ; > > ini = iniparser_load(ini_name); > if (ini==NULL) { > fprintf(stderr, "cannot parse file: %s\n", ini_name); > return -1 ; > } > iniparser_dump(ini, stderr); > > /* Get pizza attributes */ > printf("Pizza:\n"); > > b = iniparser_getboolean(ini, "pizza:ham", -1); > printf("Ham: [%d]\n", b); > b = iniparser_getboolean(ini, "pizza:mushrooms", -1); > printf("Mushrooms: [%d]\n", b); > b = iniparser_getboolean(ini, "pizza:capres", -1); > printf("Capres: [%d]\n", b); > b = iniparser_getboolean(ini, "pizza:cheese", -1); > printf("Cheese: [%d]\n", b); > > /* Get wine attributes */ > printf("Wine:\n"); > s = iniparser_getstring(ini, "wine:grape", NULL); > printf("Grape: [%s]\n", s ? s : "UNDEF"); > > i = iniparser_getint(ini, "wine:year", -1); > printf("Year: [%d]\n", i); > > s = iniparser_getstring(ini, "wine:country", NULL); > printf("Country: [%s]\n", s ? s : "UNDEF"); > > d = iniparser_getdouble(ini, "wine:alcohol", -1.0); > printf("Alcohol: [%g]\n", d); > > iniparser_freedict(ini); > return 0 ; >}
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "/usr/include/iniparser.h" void create_example_ini_file(void); int parse_ini_file(char * ini_name); int main(int argc, char * argv[]) { int status ; if (argc<2) { create_example_ini_file(); status = parse_ini_file("example.ini"); } else { status = parse_ini_file(argv[1]); } return status ; } void create_example_ini_file(void) { FILE * ini ; if ((ini=fopen("example.ini", "w"))==NULL) { fprintf(stderr, "iniparser: cannot create example.ini\n"); return ; } fprintf(ini, "#\n" "# This is an example of ini file\n" "#\n" "\n" "[Pizza]\n" "\n" "Ham = yes ;\n" "Mushrooms = TRUE ;\n" "Capres = 0 ;\n" "Cheese = Non ;\n" "\n" "\n" "[Wine]\n" "\n" "Grape = Cabernet Sauvignon ;\n" "Year = 1989 ;\n" "Country = Spain ;\n" "Alcohol = 12.5 ;\n" "\n"); fclose(ini); } int parse_ini_file(char * ini_name) { dictionary * ini ; /* Some temporary variables to hold query results */ int b ; int i ; double d ; const char * s ; ini = iniparser_load(ini_name); if (ini==NULL) { fprintf(stderr, "cannot parse file: %s\n", ini_name); return -1 ; } iniparser_dump(ini, stderr); /* Get pizza attributes */ printf("Pizza:\n"); b = iniparser_getboolean(ini, "pizza:ham", -1); printf("Ham: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:mushrooms", -1); printf("Mushrooms: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:capres", -1); printf("Capres: [%d]\n", b); b = iniparser_getboolean(ini, "pizza:cheese", -1); printf("Cheese: [%d]\n", b); /* Get wine attributes */ printf("Wine:\n"); s = iniparser_getstring(ini, "wine:grape", NULL); printf("Grape: [%s]\n", s ? s : "UNDEF"); i = iniparser_getint(ini, "wine:year", -1); printf("Year: [%d]\n", i); s = iniparser_getstring(ini, "wine:country", NULL); printf("Country: [%s]\n", s ? s : "UNDEF"); d = iniparser_getdouble(ini, "wine:alcohol", -1.0); printf("Alcohol: [%g]\n", d); iniparser_freedict(ini); return 0 ; }
View Attachment As Raw
Actions:
View
Attachments on
bug 23561
: 10447