Emergency Broadcast System Hacked

I’m sorry but I can’t stop laughing when I read this article. I especially like the police’s response.
http://www.informationweek.com/security/attacks/zombie-alert-hoax-emergency-broadcast-sy/240148355?cid=nl_IW_daily_2013-02-12_html&elq=f2fe05f4fed74f9eac66c2cababa620e

Regards,
Roger Lacroix
Capitalware Inc.

General, Security Comments Off on Emergency Broadcast System Hacked

dlsym and dlerror Weirdness on Solaris

Lately, I have been complaining about Microsoft’s Visual C++, so I figured I better write about some recent Solaris weirdness.

A customer installed MQAUSX on Solaris v10 that has WebSphere MQ v7.0.1.9 installed. They configured MQAUSX to authenticate the incoming MQ client connections against a remote LDAP server. Everything was working perfectly fine. Here’s what the calling sequence looks like:

MCA (amqrmppa) -> mqausx -> mqausxldap64.so -> client LDAP libraries ———> remote LDAP server

The customer decided to install WebSphere MQ v7.5 along side WebSphere MQ v7.0.1.9 (multi-installation) which is perfectly fine because MQAUSX can work with any version of MQ. Once they configured the WMQ v7.5 queue manager to use MQAUSX, for the first connection, MQAUSX would successfully connect to the LDAP server for authentication but for any other connection, MQAUSX would log the following dlsym error:

ld.so.1: amqrmppa: fatal: _ex_unwind: can't find symbol

I have absolutely no idea what “_ex_unwind” is. The same MQAUSX code runs on AIX, HP-UX, Linux and Solaris but it is only Solaris that has this issue.

If the customer restarts the queue manager then the first connection was fine but all others would get the same dlsym error. My first thought was now what is different in WMQ v7.5 compared to WMQ v7.0.1.9. I did a bunch of searches but found nothing related to WMQ.

After I banged my head against the wall for a while, I decided to do some generic searches about Solaris, dlsym and _ex_unwind. I got a lot of hits but not a lot of information until I found some hits related to an application called “brltty”. brltty had the same issue, worked on the first load of the shared library but failed on all the others. The developer determined that the “if” statement with the dlerror function after the dlsym call was giving a false result.

handle = dlopen ("/var/mqm/exits64/mqausxldap64.so", RTLD_NOW | RTLD_GLOBAL);
if (handle == NULL)
{
   /* log dlopen error */
}
else
{
   myFunc = dlsym(handle, "AuthLDAP");
   if ((error = dlerror()) != NULL)
   {
      /* log dlsym error */
   }
   else
   {
      rcode = (*myFunc)(pFuncParms);
   }

   dlclose(handle);
}

The solution they gave was to add a call to dlerror before dlsym to clear any errors from a previous call (unrelated to the current call sequence). They said that if you do not clear dlerror then it may give a false result because dlerror holds the “last error” and not the “error from last dl*** call”.

handle = dlopen ("/var/mqm/exits64/mqausxldap64.so", RTLD_NOW | RTLD_GLOBAL);
if (handle == NULL)
{
   /* log dlopen error */
}
else
{
   dlerror();    /* Clear any existing error */
   myFunc = dlsym(handle, "AuthLDAP");
   if ((error = dlerror()) != NULL)
   {
      /* log dlsym error */
   }
   else
   {
      rcode = (*myFunc)(pFuncParms);
   }

   dlclose(handle);
}

I do not know if this is true (need to call dlerror before dlsym) for all Unix/Linux platforms but it does appear to be true for Solaris. Anyway, I implemented the solution, gave the update to the customer and now the customer is happy. 🙂

Regards,
Roger Lacroix
Capitalware Inc.

C, Capitalware, IBM MQ, MQ Authenticate User Security Exit, Programming, Unix Comments Off on dlsym and dlerror Weirdness on Solaris

Ooka Island Adventure – Very Interesting!

I was watching an episode of Dragons’ Den and Lowell MacPhee & Joelle MacPhee were on pitching Ooka Island Adventure. Ooka Island Adventure is an online educational web site designed to increase literacy skills for children.

99% of the “educational” web sites out there use the standard “do section 1 and when you pass, move to section 2”, so on and so on. This is fine for most kids but my wife and I know from from personal experience that some kids just don’t learn properly from the standard methods. My wife and I have 5 kids and 4 of them learned how to read without much issue but for 1 son, it was worst than pulling teeth. He would be on section 20 of a web site or book and say “I don’t know what they are talking about” and my wife would say “you did that in section 12 last week”. He would then (if the web site would allow it) redo section 12, “pass it” and go back to section 20 but the next day we would go through the same problem with another issue. The problem was that he was passing the sections but “not learning” the concepts. It was years and YEARS of a lot of frustration getting him to learn how to read.

So, what does my son’s issues have to do with Ooka Island Adventure? Well, they claim that their software uses “adaptive learning algorithm” and this is what caught my attention. They claim that no 2 children go on the same path in learning how to read using their software. If true, children with difficulty learning how to read could greatly improve using Ooka Island Adventure (and parents wouldn’t go crazy during the process).

Note: I am not affiliated or any way associated with Ooka Island Adventure and what I know of it is from the episode of Dragons’ Den.

Food for thought for parents with children having trouble learning how to read.

Regards,
Roger Lacroix
Capitalware Inc.

Education Comments Off on Ooka Island Adventure – Very Interesting!

New: Universal File Mover v1.0.2

Capitalware is pleased to announce the release of Universal File Mover v1.0.2. It is a free open source project.

Universal File Mover is more than a simple tool to manage the transfer of files. It allows the user to combine business processes into a workflow. The user combines a series of Action commands to create the UFM Workflow XML file. UFM is supported on AIX, HP-UX, IBM i (OS/400), Linux, Mac OS X, Solaris and Windows.

    Changes:

  • Fixed an issue with the MQReceive action when the same file is received again but is smaller than the original.

For more information on Universal File Mover, please go to:
https://www.capitalware.com/ufm_overview.html

Regards,
Roger Lacroix
Capitalware Inc.

Capitalware, IBM i (OS/400), IBM MQ, Java, Linux, macOS (Mac OS X), Open Source, Universal File Mover, Unix, Windows Comments Off on New: Universal File Mover v1.0.2

New: MQ File Mover v4.1.7

Capitalware is pleased to announce the release of MQ File Mover v4.1.7. It is a free open source project.

MQ File Mover is a managed file transfer solution that facilitates the transfer of files using IBM’s WebSphere MQ (aka MQSeries). MQFM processes “Action” commands which are controlled through an MQFM Workflow XML file. The user combines a series of Action commands to create the MQFM Workflow XML file.

    Changes:

  • Fixed an issue with the Receive action when the same file is received again but is smaller than the original.

For more information on MQ File Mover, please go to:
http://www.capitalware.biz/mqfm_overview.html

Regards,
Roger Lacroix
Capitalware Inc.

Capitalware, IBM i (OS/400), IBM MQ, Java, Linux, macOS (Mac OS X), MQ File Mover, Open Source, Unix, Windows Comments Off on New: MQ File Mover v4.1.7

LibreOffice 4.0 Released

Document Foundation has just released LibreOffice v4.0.0.
http://blog.documentfoundation.org/2013/02/07/the-document-foundation-announces-libreoffice-4-0/

LibreOffice is a comprehensive, professional-quality productivity suite that you can download and install for free. There is a large base of satisfied LibreOffice users worldwide, and it’s available in more than 30 languages and for all major operating systems, including Microsoft Windows, Mac OS X and Linux (Debian, Ubuntu, Fedora, Mandriva, Suse, …).

Regards,
Roger Lacroix
Capitalware Inc.

Linux, macOS (Mac OS X), Open Source, Windows Comments Off on LibreOffice 4.0 Released

MySQL v5.6 Released

The Oracle has just released MySQL v5.6.
http://dev.mysql.com/downloads/mysql/5.6.html

MySQL is the world’s most used open source relational database management system (RDBMS) as of 2008 that runs as a server providing multi-user access to a number of databases.

Regards,
Roger Lacroix
Capitalware Inc.

Database, Linux, macOS (Mac OS X), Open Source, Unix, Windows Comments Off on MySQL v5.6 Released

Again MS Visual C++ 2010 bites me in the …

I really hate MS Visual C++ 2010. I have had so many problems since I installed it a couple of weeks ago that it is driving me crazy.

I have an MQ API Exit built for Windows 64-bit (via a script) with /Release /x64.

setlocal
CALL "D:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /x64
nmake -f makefile.vc64.nt %1
endlocal

And in the makefile I use the parameter /LD for the cl command to build the DLL:

$(cc) $(cflags) $(cvarsdll) /LD $(scall) -Fo$@ $(MYSRC)$(@B).c

This has worked fine for many years and different Microsoft compilers but not with Visual C++ 2010.

A customer was running a 64-bit application on their server but MQ would not load the 64-bit version of the mqa.dll. Here is what was in the MQ trace file:

FullPathLibName(C:\Program Files (x86)\IBM\WebSphere MQ\exits64\mqa.dll) RC(24948) WindowsErrorNumber(126) WindowsErrorString(The specified module could not be found.)

The customer verified many times that the 64-bit version of mqa.dll was indeed in the correct location. Hence, a PMR was opened with IBM.

IBM had the customer run the Process Monitor program against it and output the data to a file. In the file, there were many occurrences of “MSVCR100D.dll NAME NOT FOUND”. MSVCR100D.dll is the debug version of MSVCR100.dll (note the extra “D” in the file name of the debug version).

I reviewed my makefile to make sure that I was not using either “_DEBUG” or “/LDd” (or /Debug /x64 for the environment) that would cause the “cl” command to build the DLL for a debug environment but everything was correct.

I even checked Microsoft’s MSDN regarding /LD parameter:
http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=vs.100).aspx

I rebuild the DLL several times and when I checked the DLL, it pointed to MSVCR100D.dll and not MSVCR100.dll.

After a bunch of Google searches and finding other people with the same problem using Visual C++ or Visual Studio 2010, I changed /LD to /MD and rebuild the DLL. When I checked the DLL, it now points to msvcr100.dll – which is correct.

I do not understand it. Microsoft’s documentation says that parameter /LD creates a dll and parameter /LDd creates a dll for debugging. There must be some sort of bug in MS Visual C++. 🙁 All I can do is shake my head in frustration.

I REALLY wish IBM would officially support GCC on Windows, so that I could get away from Microsoft’s Visual C++ 2010. I don’t have these stupid headaches on Linux!! I do have GCC 32-bit and 64-bit for Windows on my PC and do successfully build MQ applications and DLLs with it – I just don’t give them to customers (I don’t want GCC to get blamed when an issue shows up).

Regards,
Roger Lacroix
Capitalware Inc.

C, Capitalware, IBM MQ, Programming, Windows Comments Off on Again MS Visual C++ 2010 bites me in the …

Super Bowl

Small Sliding scale picks for Super Bowl (least probable to most probable):

U1   Baltimore Ravens     F4.5       at      San Francisco 49ers

Fibonacci Sliding scale picks for Super Bowl (least probable to most probable):

U1   Baltimore Ravens     F4.5       at      San Francisco 49ers

So what does it mean?

U1   Baltimore Ravens     F4.5       at      San Francisco 49ers

U1 means the underdog team will beat the spread (favorite will not cover the spread) with the highest probability of success.

Enjoy. 🙂 As they say in the stock market, past perform is no indication of future performance.

Regards,
Roger Lacroix

Football 1 Comment

Updated MMX and MRTR Load-Modules for z/OS

Yesterday afternoon while doing some z/OS MQ testing, I discovered that both Message Multiplexer (MMX) and Message Router (MRTR) had been linked with the wrong MQ stub. Oy vey!!

I relinked both MMX and MRTR with the correct MQ stub (CSQBSTUB) then posted the both download archives to Capitalware’s web site.

Note: The source did not change. If you downloaded, compiled and linked MMX or MRTR on z/OS, you would have been fine. If you attempted to use either MMX or MRTR load-modules as given in the download archive, then the load modules would have failed on the MQCONN API call. Sorry about that. It is now fixed.

Regards,
Roger Lacroix
Capitalware Inc.

C, Capitalware, IBM MQ, Open Source, Programming, z/OS Comments Off on Updated MMX and MRTR Load-Modules for z/OS