Re: [Arsperl-users] ARSPerl 1.93 fix for crash with Windows 7 and 2008
Brought to you by:
jeffmurphy
|
From: Glyn D. <gly...@ho...> - 2012-03-15 17:10:58
|
Oooo.. ok, sorry, don't really use that so much I'm afraid. I know there is a way of doing it, as I was doing some compilation of other modules with Activestate before deciding to switch to Strawberry Perl. This link may be of some help on how to set up a MS C environment: http://mateusz.loskot.net/2008/09/22/visual-c-toolkit-2003-still-in-use/ It depends though on the version of the C compiler used to put the Active State perl together, so when I was doing it it was VC 2003, but it may have changed since. That's why Strawberry perl ended up looking more attractive, as everything's all included :) Hope that helps! Regards, Glyn From: Mat...@pr... To: ars...@li... Date: Thu, 15 Mar 2012 16:20:12 +0000 Subject: Re: [Arsperl-users] ARSPerl 1.93 fix for crash with Windows 7 and 2008 Ahh, currently using Active State. Matthew Smith | Technical Support Analyst, Automation,Monitoring | Produban UK Commercial mat...@pr... | Tel+44 (0) 1162005578 | Mob+44 (0) 7715435257 | Building 7, Floor 1, Carlton Park, Narborough, Leicester, LE19 0AL, UK | Please consider the environment before printing this email | From: Glyn Davies [mailto:gly...@ho...] Sent: 15 March 2012 15:21 To: ars...@li... Subject: Re: [Arsperl-users] ARSPerl 1.93 fix for crash with Windows 7 and 2008 Hi Jeff, Here are the diffs of the files I've modified, hopefully that's what you're after :) --- ARSperl-1.93.orig/supportrev.h Thu Apr 2 19:57:04 2009 +++ ARSperl-1.93/supportrev.h Thu Mar 8 16:30:33 2012 @@ -111,6 +111,10 @@ EXTERN int strncasecmp(char *s1, char *s2, size_t n); +#endif /* def _WIN32 */ + +#if defined(_WIN32) + EXTERN char* arsperl_strdup( char *s1 ); #define strdup arsperl_strdup --- ARSperl-1.93.orig/supportrev.c Thu Apr 2 19:57:03 2009 +++ ARSperl-1.93/supportrev.c Thu Mar 8 16:31:18 2012 @@ -2674,6 +2674,10 @@ return (i == n)? 0 : *p1 - *p2; } +#endif + +#if defined(_WIN32) + char* arsperl_strdup( char *s1 ){ char *p1; Hi Matt, With these changes applied to the source, then it's just a matter of running through the normal compile process. If you'd still rather have one ready-made, then let me know which version of Strawberry perl and Remedy you're using and I can put something together for you. Regards, Glyn From: jcm...@je... Date: Wed, 14 Mar 2012 13:36:40 -0400 To: ars...@li... Subject: Re: [Arsperl-users] ARSPerl 1.93 fix for crash with Windows 7 and 2008 On Mar 14, 2012, at 1:00 PM, Smith, Matthew (Produban) wrote: Well done Glyn, Any chance I can get hold of the compiled modules? In addition, a patch (or description of which lines you changed, etc, to make it work on Windows) would be awesome! jeff What you describe would be beyond me! Thanks Matt… Matthew Smith | Technical Support Analyst, Automation,Monitoring | Produban UK Commercial From: Glyn Davies [mailto:gly...@ho...] Sent: 14 March 2012 16:02 To: ars...@li... Subject: [Arsperl-users] ARSPerl 1.93 fix for crash with Windows 7 and 2008 Just wanted to report a fix I found for an issue I was having with ARSperl running on Windows 7 and 2008. I compiled the module using Strawberry Perl with the 7.6.4 version of the Remedy API, and found that test scripts would run as expected on Windows XP or 2003, but that perl would crash on Windows 7 or 2008 reporting an issue with ntdll.dll. I tried different versions of the Remedy API, but hit the same problem. The crash would occur when trying to use the ars_setEntry function, but would only occur when using string fields, not numerical fields. Looking through the source, I tracked down the issue to the sv_to_ARValue, and specifically the use of strdup. It seems that some functionality has changed in Windows somewhere that means when strdup is allocating memory, it's not creating it on general heap? That's all I can assume, as when the code hit the call to FreeARFieldValueList, that's when the crash would actually occur. The workaround has been to update the supportrev.h and supportrev.c files to ensure that the arsperl_strdup function is available when compiling on Windows, not just when compiling on Windows with a non-GNU C compiler. As the arsperl_strdup function then replaces strdup, this fixed the problem, and scripts using ars_SetEntry (ars_CreateEntry and ars_MergeEntry would be affected too by the looks of it) now work correctly on all version of Windows that I've been able to test on. Just wanted to pass this on in case it will help others who hit the same problem! Regards, Glyn Emails aren't always secure, and they may be intercepted or changed after they've been sent. Produban doesn't accept liability if this happens. If you think someone may have interfered with this email, please get in touch with the sender another way. This message and any documents attached to it do not create or change any contract unless otherwise specifically stated. Any views or opinions contained in this message are solely those of the author, and do not necessarily represent those of Produban, unless otherwise specifically stated and the sender is authorised to do so. Produban doesn't accept responsibility for damage caused by any viruses contained in this email or its attachments. Emails may be monitored. If you've received this email by mistake, please let the sender know at once that it's gone to the wrong person and then destroy it without copying, using, or telling anyone about its contents. Produban Servicios Informaticos Generales, S.L. (UK Branch). Registered office: Shenley Wood House, Chalkdell Drive, Shenley Wood, Milton Keynes MK5 6LA. Branch registration number BR 008486. Ref:[PDB#014] ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ -- Arsperl-users mailing list Ars...@li... https://lists.sourceforge.net/lists/listinfo/arsperl-users ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ -- Arsperl-users mailing list Ars...@li... https://lists.sourceforge.net/lists/listinfo/arsperl-users ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure -- Arsperl-users mailing list Ars...@li... https://lists.sourceforge.net/lists/listinfo/arsperl-users |