[Bug 856993] [NEW] NP_GetMIMEDescription returns NULL in x86_64 instrumented Citrix ICA client npwrapper.npica.so

JVD 856993 at bugs.launchpad.net
Fri Sep 23 02:41:52 UTC 2011


Public bug reported:

The Citrix ICA client firefox plugin 32-bit i386 npica.so fails to be instrumented correctly by nspluginwrapper - the generated npwrapper.npica.so's
const char* NP_GetMIMEDescription() function returns NULL, while the original i386 npica.so's version does not:

$ cat chkNPWnpica.c
#include <sys/types.h>
#include <unistd.h>
#include <dlfcn.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv, char **envp)
{
  void *dlh = dlopen("/usr/OOO/ICAClient/npica.so", RTLD_GLOBAL | RTLD_NOW );
  if(dlh == 0)
    {
      printf("dlopen failed: %d\n",errno);
      exit(1);
    }
  const char* (*npGetPluginVersion)() =
    (const char* (*)()) dlsym(dlh, "NP_GetPluginVersion");
  if( npGetPluginVersion == 0 )
    {
      printf("No plugin version\n");
    }

  const char* (*npGetMIMEDescription)() =
    (const char* (*)()) dlsym(dlh, "NP_GetMIMEDescription");

  if( npGetMIMEDescription == 0 )
      printf("No MIME description\n");
  else
    printf("Got NP_GetMIMEDescription: %p\n", npGetMIMEDescription);

  const char* mime_descr = npGetMIMEDescription();

  printf("Got MIME description: %s\n",mime_descr);

  void *npGetValue = dlsym(dlh, "NP_GetValue");

  if( npGetValue == 0 )
      printf("No NP_GetValue");
  else
    printf("Got NP_GetValue: %p\n", npGetValue);

  return 0;
}
$ gcc -o chkNPWnpica chkNPWnpica.c -ldl && ./chkNPWnpica
No plugin version
Got NP_GetMIMEDescription: 0x7feeb9640180
Got MIME description: (null)
Got NP_GetValue: 0x7feeb963ffa0
$ cat chknpica.c
#include <sys/types.h>
#include <unistd.h>
#include <dlfcn.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv, char **envp)
{
  void *dlh = dlopen("/usr/OOO/ICAClient/npica.so", RTLD_GLOBAL | RTLD_NOW );
  if(dlh == 0)
    {
      printf("dlopen failed: %d\n",errno);
      exit(1);
    }
  const char* (*npGetPluginVersion)() =
    (const char* (*)()) dlsym(dlh, "NP_GetPluginVersion");
  if( npGetPluginVersion == 0 )
    {
      printf("No plugin version\n");
    }

  const char* (*npGetMIMEDescription)() =
    (const char* (*)()) dlsym(dlh, "NP_GetMIMEDescription");

  if( npGetMIMEDescription == 0 )
      printf("No MIME description\n");
  else
    printf("Got NP_GetMIMEDescription: %p\n", npGetMIMEDescription);

  const char* mime_descr = npGetMIMEDescription();

  printf("Got MIME description: %s\n",mime_descr);

  void *npGetValue = dlsym(dlh, "NP_GetValue");

  if( npGetValue == 0 )
      printf("No NP_GetValue");
  else
    printf("Got NP_GetValue: %p\n", npGetValue);

  return 0;
}

$ gcc -m32 -o chknpica chknpica.c -ldl && ./chknpica
No plugin version
Got NP_GetMIMEDescription: 0xf77a8590
Got MIME description: application/x-ica:ica:Handles ICA connections
Got NP_GetValue: 0xf77a8420

Any known fix for this ?  I urgently need to be able to use Citrix ICA
in order to login to my corporate VPN .

I've built  nspluginwrapper 1.2.2 from trunk and ran : 
$ nspluginwrapper -i /usr/OOO/ICAClient/npica.so
to produce /usr/lib64/mozilla/plugins/npwrapper.npica.so .

** Affects: nspluginwrapper (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Mozilla
Bugs, which is subscribed to nspluginwrapper in Ubuntu.
https://bugs.launchpad.net/bugs/856993

Title:
  NP_GetMIMEDescription returns NULL in x86_64 instrumented Citrix ICA
  client npwrapper.npica.so

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nspluginwrapper/+bug/856993/+subscriptions




More information about the Ubuntu-mozillateam-bugs mailing list