[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#291438: tetex-bin: dvipdfm segfaults when used with hyperref and hypertex



On 03.01.07 Mark A. Wicks (mwicks@kettering.edu) wrote:

Hi,

> The patch I have incorporated is attached.  It's similar to the
> Gentoo patch, but different in two ways:
> 
>    1) It doesn't depend on the rounding direction of '/' (this may not be
>       an issue today)
>    2) It always uses gmtoff when it's available.
> 
> I hope you are able to use it.  It corrects some fairly serious problems. 
> Without this patch, the code really doesn't do what's intended.
> 
> Mark
> 
> On Tue, 2 Jan 2007, Hilmar Preusse wrote:
> 
> >Date: Tue, 2 Jan 2007 19:48:17 +0100
> >From: Hilmar Preusse <hille42@web.de>
> >To: Mark A. Wicks <mwicks@kettering.edu>, 291438@bugs.debian.org
> >Subject: Re: Bug#291438: tetex-bin: dvipdfm segfaults when used with 
> >hyperref
> >    and hypertex
> >
> >On 02.01.07 Mark A. Wicks (mwicks@kettering.edu) wrote:
> >
> >Hi,
> >
> >>I am reserving some time tonight hopefully to finish this.  I hope
> >>to send a patch tomorrow.
> >>
> >>I am sorry I didn't fix this ealier.
> >>
> >Good, to hear that. BTW we got that report another time on
> >http://bugs.debian.org/403245 . The submitter posted a patch. Maybe
> >it is worth to have a look at it.
> >
> >Thanks,
> > Hilmar
> >-- 
> >sigmentation fault
> >
> 
> ______________________________________________________________________
> 
>   Mark A. Wicks                                mwicks@kettering.edu
>   Professor and Head
>   ECE Department, Kettering University         Voice: (810) 762-7992
>   1700 West Third Ave, Flint, MI 48504-4898    Fax:   (810) 762-9830
> --0-1339404491-1167840217=:9090
> Content-Type:

> --- pdfdoc.c.orig	2007-01-02 20:13:27.000000000 -0500
> +++ pdfdoc.c	2007-01-02 23:04:31.000000000 -0500
> @@ -231,13 +231,7 @@
>  
>  static char *asn_date (void)
>  {
> -#ifndef HAVE_TIMEZONE
> -  #ifdef TM_GM_TOFF
> -     #define timezone (bdtime->gm_toff)
> -  #else
> -     #define timezone 0l
> -#endif /* TM_GM_TOFF */
> -#endif /* HAVE_TIMEZONE */
> +  long tz_offset;
>    static char date_string[24];
>    time_t current_time;
>    struct tm *bd_time;
> @@ -246,10 +240,28 @@
>    }
>    time(&current_time);
>    bd_time = localtime(&current_time);
> -  sprintf (date_string, "D:%04d%02d%02d%02d%02d%02d%+03ld'%02ld'",
> -	   bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
> -	   bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec,
> -	   -timezone/3600, timezone%3600);
> +
> +#ifdef HAVE_TM_GMTOFF  /* Preferred way to get time zone offset */
> +  tz_offset = bd_time->tm_gmtoff;
> +#else
> +#ifdef HAVE_TIMEZONE   /* Plan B --- use external variable 'timezone'
> +                       /* (may not provide correct offset for daylight savings time) */
> +  tz_offset = - timezone;
> +#else                  /* Last resort --- without more information, set offset to zero */
> +  tz_offset = 0l;
> +#endif /* HAVE_TIMEZONE */
> +#endif /* HAVE_TM_GMTOFF */
> +
> +  if (tz_offset == 0l) {
> +    sprintf (date_string, "D:%04d%02d%02d%02d%02d%02dZ00'00'",
> +	     bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
> +	     bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec);
> +  } else {
> +    sprintf (date_string, "D:%04d%02d%02d%02d%02d%02d%c%02ld'%02ld'",
> +             bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
> +             bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec,
> +	     (tz_offset>0)? '+':'-', abs(tz_offset)/3600, (abs(tz_offset)/60)%60);
> +  }
>    return date_string;
>  }
>  
> --- configure.orig	2001-06-28 15:55:26.000000000 -0400
> +++ configure	2007-01-03 10:09:08.000000000 -0500
> @@ -927,7 +927,7 @@
>  #line 928 "configure"
>  #include "confdefs.h"
>  #include <stdio.h>
> -#include <kpathsea/tex-file.h>
> +#include <kpathsea/kpathsea.h>
>  int main() {
>  kpse_tex_ps_header_format;
>  			 kpse_type1_format;kpse_vf_format
> @@ -950,7 +950,7 @@
>  If you are sure they are installed and in a standard place, maybe you need a
>  newer version of kpathsea?  You also might try setting the environment
>  variable CPPFLAGS (or CFLAGS) with -I pointing to the directory containing
> -the file "tex-file.h"
> +the file "kpathsea.h"
>  
>  " 1>&2; exit 1; }
>  fi
> @@ -961,7 +961,7 @@
>  #line 962 "configure"
>  #include "confdefs.h"
>  #include <stdio.h>
> -#include <kpathsea/tex-file.h>
> +#include <kpathsea/kpathsea.h>
>  int main() {
>  kpse_ofm_format
>  ; return 0; }


-- 
sigmentation fault



Reply to: