---
 src/include/internal_libreport.h  |    1 +
 src/lib/create_dump_dir.c         |    5 +++--
 src/lib/iso_date_string.c         |    2 +-
 src/plugins/reporter-rhtsupport.c |    6 +++---
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/include/internal_libreport.h b/src/include/internal_libreport.h
index 892a70f..42c94f7 100644
--- a/src/include/internal_libreport.h
+++ b/src/include/internal_libreport.h
@@ -567,6 +567,7 @@ char* get_environ(pid_t pid);
  */
 #define iso_date_string libreport_iso_date_string
 char *iso_date_string(const time_t *pt);
+#define LIBREPORT_ISO_DATE_STRING_SAMPLE "YYYY-MM-DD-hh:mm:ss"
 
 enum {
     MAKEDESC_SHOW_FILES     = (1 << 0),
diff --git a/src/lib/create_dump_dir.c b/src/lib/create_dump_dir.c
index 27e3761..fb17d57 100644
--- a/src/lib/create_dump_dir.c
+++ b/src/lib/create_dump_dir.c
@@ -29,8 +29,9 @@ static struct dump_dir *try_dd_create(const char 
*base_dir_name, const char *dir
 
 struct dump_dir *create_dump_dir_from_problem_data(problem_data_t 
*problem_data, const char *base_dir_name)
 {
-    char dir_name[sizeof("abrt-tmp-YYYY-MM-DD-HH:MM:SS-%lu") + sizeof(long)*3];
-    sprintf(dir_name, "abrt-tmp-%s-%lu", iso_date_string(NULL), 
(long)getpid());
+    const size_t 
tmp_required_size=sizeof("abrt-tmp-"LIBREPORT_ISO_DATE_STRING_SAMPLE"-%lu") + 
sizeof(long)*3;
+    char dir_name[tmp_required_size];
+    snprintf(dir_name, tmp_required_size, "abrt-tmp-%s-%lu", 
iso_date_string(NULL), (long)getpid());
 
     struct dump_dir *dd;
     if (base_dir_name)
diff --git a/src/lib/iso_date_string.c b/src/lib/iso_date_string.c
index ae35cea..2db0d29 100644
--- a/src/lib/iso_date_string.c
+++ b/src/lib/iso_date_string.c
@@ -21,7 +21,7 @@
 
 char *iso_date_string(const time_t *pt)
 {
-    static char buf[sizeof("YYYY-MM-DD-HH:MM:SS") + 4];
+    static char buf[sizeof(LIBREPORT_ISO_DATE_STRING_SAMPLE) + 4];
 
     time_t t;
     struct tm *ptm = localtime(pt ? pt : (time(&t), &t));
diff --git a/src/plugins/reporter-rhtsupport.c 
b/src/plugins/reporter-rhtsupport.c
index ead5904..d90d744 100644
--- a/src/plugins/reporter-rhtsupport.c
+++ b/src/plugins/reporter-rhtsupport.c
@@ -230,9 +230,9 @@ int main(int argc, char **argv)
         dsc = make_description_bz(problem_data, CD_TEXT_ATT_SIZE_BZ);
     }
     file = new_reportfile();
-    const char *dt_string = iso_date_string(NULL);
-    char tmpdir_name[sizeof("/tmp/rhtsupport-YYYY-MM-DD-hh:mm:ss-XXXXXX")];
-    sprintf(tmpdir_name, "/tmp/rhtsupport-%s-XXXXXX", dt_string);
+    const size_t 
tmp_required_size=sizeof("/tmp/rhtsupport-"LIBREPORT_ISO_DATE_STRING_SAMPLE"-XXXXXX");
+    char tmpdir_name[tmp_required_size];
+    snprintf(tmpdir_name, tmp_required_size, "/tmp/rhtsupport-%s-XXXXXX", 
iso_date_string(NULL));
     /* mkdtemp does mkdir(xxx, 0700), should be safe (is it?) */
     if (mkdtemp(tmpdir_name) == NULL)
     {
-- 
1.7.7.6

Reply via email to