Display *dpy;
char **new_argv;
int new_argc, i;
- char temp[128];
- char cwd[128];
+ char temp[1024];
+ char cwd[1024];
dpy = XOpenDisplay (NULL);
if (!dpy)
{
GOTO_IF_FAIL (read_len == sizeof(EvlogRequest), print_done);
total += read_len;
+ GOTO_IF_FAIL ((evinfo.req.length * 4) < SSIZE_MAX, print_done);
+
evinfo.req.ptr = malloc (evinfo.req.length * 4);
GOTO_IF_FAIL (evinfo.req.ptr != NULL, print_done);
xorg_list_init(&evinfo.evatom.list);
evinfo.evatom.init = 1;
}
+
read_len = read (fd, table, sizeof (EvlogAtomTable));
- GOTO_IF_FAIL (read_len == sizeof(EvlogAtomTable), print_done);
+ if (read_len != sizeof(EvlogAtomTable))
+ {
+ WARNING_IF_FAIL (read_len == sizeof(EvlogAtomTable));
+ free (table);
+ goto print_done;
+ }
total += read_len;
xorg_list_add(&table->link, &evinfo.evatom.list);
void xDbgDistroyAtomList (EvlogInfo *evinfo)
{
- EvlogAtomTable *cur, *next;
+ EvlogAtomTable *cur = NULL, *next = NULL;
if (!evinfo->evatom.init)
return;
void xDbgDistroyRegionList (EvlogInfo *evinfo)
{
- EvlogRegionTable *cur, *next;
+ EvlogRegionTable *cur = NULL, *next = NULL;
if (!evinfo->evregion.init)
return;
if (evinfo->mask & EVLOG_MASK_REGION)
{
- EvlogRegionTable *table;
+ EvlogRegionTable *table = NULL;
if (write (fd, &evinfo->evregion.size, sizeof (int)) == -1)
{
else if (rep)
err = (xError *) rep->replyData;
- evinfo.mask |= EVLOG_MASK_ERROR;
- evinfo.err.errorCode = err->errorCode;
- evinfo.err.resourceID = err->resourceID;
- evinfo.err.minorCode = err->minorCode;
- evinfo.err.majorCode = err->majorCode;
+ if (err)
+ {
+ evinfo.mask |= EVLOG_MASK_ERROR;
+ evinfo.err.errorCode = err->errorCode;
+ evinfo.err.resourceID = err->resourceID;
+ evinfo.err.minorCode = err->minorCode;
+ evinfo.err.majorCode = err->majorCode;
+ }
+ else
+ XDBG_NEVER_GET_HERE (MXDBG);
}
}