[xml] xmlReadMemory reading struct char pointer issue



 
I have been using libxml2 version 2.6.30 in my plugin library code.
But I have run into a problem with the xmlReadMemory function call returning NULL after reading a memory location that is valid and has content. Thanks for your help.
 
The code snippet is as follows:
 
typedef struct
{
  /* JMS object handles */
  HOBJ connectionFactory;
  HOBJ connection;
  HOBJ sendSession;
  HOBJ recvSession;
  HOBJ sender;
  HOBJ sQueue;
  HOBJ rQueue;
  HOBJ receiver;
  HOBJ prQueueName;
  HOBJ brokerObj;
  HOBJ usernameObj;
  HOBJ passwordObj;
  HOBJ connectIdObj;
  HOBJ sQueueNameObj;
  int iInitRun;
  char *sdiRequest;
  char *sdiResponse;
  char *sdiUser;
  char *sdiPwd;
  char *sdiQ;
  char *sdiBrokerList;
  int sdiRows;
} Context;
...
 
CreateInstance(void **object,...)
{
...
Context *context;

if (object != NULL)
    *object = NULL;
context = (Context *) malloc(sizeof(Context));
...
 *object = (Context *) context;
...
}

talker(void *object,...)
{
...
onMessage(object,msg);
}

onMessage(object,...)
{
  Context * *) object;
  char *string;
  ...string is set to a valid content here using the msg param passed in...

  onMsgCtxt->sdiResponse = (char *)malloc(strlen(string));
  strncpy(onMsgCtxt->sdiResponse,string,strlen(string));
  ...
}

GLEWF(void *object,...)
{
...
  xmlDocPtr                    doc;
...
  Context *glewfCtxt = (Context *)object;
...
talker(object);
...
 
  len = strlen(glewfCtxt->sdiResponse);
  //when I print out len it shows value - 1344 meaning there is content in glewfCtxt->sdiResponse

  doc = xmlReadMemory(glewfCtxt->sdiResponse, strlen(glewfCtxt->sdiResponse), "noname.xml", NULL, 0);
...
}


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