Re: [HACKERS] Patch for VS.Net 2005's strxfrm() bug

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] Patch for VS.Net 2005's strxfrm() bug
Дата
Msg-id 200607261715.k6QHFjP28100@momjian.us
обсуждение исходный текст
Ответ на Re: [HACKERS] Patch for VS.Net 2005's strxfrm() bug  ("Hiroshi Saito" <z-saito@guitar.ocn.ne.jp>)
Список pgsql-patches
Patch attached and applied.  Thanks.

---------------------------------------------------------------------------

Hiroshi Saito wrote:
> Hi.
>
> "William ZHANG" <uniware@zedware.org> wrote in message news:ea5fm1$2q6i$1@news.hub.org...
> > When I tried to compile pgsql-8.2devel with VS.Net 2005 and do regression
> > tests,
> > I found the problem. It's a bug inVS.Net 2005:
> > http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99694
> >
>
> +   /* http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99694 */
> + #if _MSC_VER == 1400
> +   {
> +    char x[1];
> +
> +    xfrmlen = strxfrm(x, val, 0);
> +   }
> + #else
>     xfrmlen = strxfrm(NULL, val, 0);
> + #endif
>
>
> Hmm, It seems to be the bug of very unpleasant Microsoft.:D
> I think that the following is desirable as an evasion measure to add.
>
> #if defined(_MSC_VER) && _MSC_VER == 1400
>
> To be sure, it was only VS2005.
>
> Regards,
> Hiroshi Saito
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/adt/selfuncs.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v
retrieving revision 1.210
diff -c -c -r1.210 selfuncs.c
*** src/backend/utils/adt/selfuncs.c    24 Jul 2006 01:19:48 -0000    1.210
--- src/backend/utils/adt/selfuncs.c    26 Jul 2006 17:13:26 -0000
***************
*** 2956,2962 ****
           * == as you'd expect.  Can't any of these people program their way
           * out of a paper bag?
           */
!         xfrmlen = strxfrm(NULL, val, 0);
          xfrmstr = (char *) palloc(xfrmlen + 1);
          xfrmlen2 = strxfrm(xfrmstr, val, xfrmlen + 1);
          Assert(xfrmlen2 <= xfrmlen);
--- 2956,2970 ----
           * == as you'd expect.  Can't any of these people program their way
           * out of a paper bag?
           */
! #if _MSC_VER == 1400    /* VS.Net 2005 */
!         /* http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99694 */
!         {
!             char x[1];
!             xfrmlen = strxfrm(x, val, 0);
!         }
! #else
!         xfrmlen = strxfrm(NULL, val, 0);
! #endif
          xfrmstr = (char *) palloc(xfrmlen + 1);
          xfrmlen2 = strxfrm(xfrmstr, val, xfrmlen + 1);
          Assert(xfrmlen2 <= xfrmlen);

В списке pgsql-patches по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] Patch for VS.Net 2005's strxfrm() bug
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [PATCH] Provide 8-byte transaction IDs to user level