As a failsafe measure use memcpy instead of strcpy in gnupg_copy_time.
authorWerner Koch <wk@gnupg.org>
Thu, 5 Jun 2008 07:46:12 +0000 (07:46 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 5 Jun 2008 07:46:12 +0000 (07:46 +0000)
Typo fix.

common/ChangeLog
common/gettime.c
common/util.h

index 860d3cb..af2025d 100644 (file)
@@ -1,3 +1,7 @@
+2008-06-05  Werner Koch  <wk@g10code.com>
+
+       * util.h (gnupg_copy_time): Replace strcpy by memcpy.
+
 2008-05-26  Werner Koch  <wk@g10code.com>
 
        * asshelp.c (send_one_option, send_pinentry_environment): use
index 6b7411b..c4a9d48 100644 (file)
@@ -402,7 +402,7 @@ days_per_month (int y, int m)
 
 
 /* Convert YEAR, MONTH and DAY into the Julian date.  We assume that
-   it is already noon; we dont; support dates before 1582-10-15. */
+   it is already noon.  We do not support dates before 1582-10-15. */
 static unsigned long
 date2jd (int year, int month, int day)
 {
index 269aed1..7703be2 100644 (file)
@@ -115,13 +115,19 @@ gpg_error_t add_days_to_isotime (gnupg_isotime_t atime, int ndays);
 gpg_error_t check_isotime (const gnupg_isotime_t atime);
 
 /* Copy one ISO date to another, this is inline so that we can do a
-   sanity check. */
+   minimal sanity check.  A null date (empty string) is allowed.  */
 static inline void
 gnupg_copy_time (gnupg_isotime_t d, const gnupg_isotime_t s)
 {
-  if (*s && (strlen (s) != 15 || s[8] != 'T'))
-    BUG();
-  strcpy (d, s);
+  if (*s)
+    {
+      if ((strlen (s) != 15 || s[8] != 'T'))
+        BUG();
+      memcpy (d, s, 15);
+      d[15] = 0;
+    }
+  else
+    *d = 0;
 }