]> git.stg.codes - stg.git/blobdiff - projects/sgconf/main.cpp
Various fixes of issues reported by static analyzers.
[stg.git] / projects / sgconf / main.cpp
index f83d389434105d06bf375328c2b17321b15671f5..3eaffb9f07120c5089c0aa2bef585cfc4594d5f2 100644 (file)
@@ -332,13 +332,6 @@ return stg_timegm(&brokenTime);
 void ParseAnyString(const char * c, string * msg, const char * enc)
 {
 iconv_t cd;
-char * ob = new char[strlen(c) + 1];
-char * ib = new char[strlen(c) + 1];
-
-strcpy(ib, c);
-
-char * outbuf = ob;
-char * inbuf = ib;
 
 setlocale(LC_ALL, "");
 
@@ -349,11 +342,6 @@ const char * charsetT = enc;
 
 size_t nconv = 1;
 
-size_t insize = strlen(ib);
-size_t outsize = strlen(ib);
-
-insize = strlen(c);
-
 cd = iconv_open(charsetT, charsetF);
 if (cd == (iconv_t) -1)
     {
@@ -369,7 +357,18 @@ if (cd == (iconv_t) -1)
     exit(ICONV_ERR_CODE);
     }
 
-#if defined(FREE_BSD) || defined(FREE_BSD5)
+char * ob = new char[strlen(c) + 1];
+char * ib = new char[strlen(c) + 1];
+
+strcpy(ib, c);
+
+char * outbuf = ob;
+char * inbuf = ib;
+
+size_t insize = strlen(c);
+size_t outsize = strlen(ib);
+
+#if defined(CONST_ICONV)
 nconv = iconv (cd, (const char**)&inbuf, &insize, &outbuf, &outsize);
 #else
 nconv = iconv (cd, &inbuf, &insize, &outbuf, &outsize);
@@ -1002,7 +1001,7 @@ while (1)
             break;
 
         case 'P': //phone
-            ParseAnyString(optarg, &str);
+            ParseAnyString(optarg, &str, "koi8-ru");
             req.phone = str;
             break;
 
@@ -1062,7 +1061,7 @@ while (1)
         case 707:
         case 708:
         case 709:
-            ParseAnyString(optarg, &str);
+            ParseAnyString(optarg, &str, "koi8-ru");
             //printf("UD%d\n", c - 700);
             req.ud[c - 700] = str;
             break;