progs/xdemos: Prevent possible string overflow.

This commit is contained in:
Vinson Lee 2010-01-06 14:55:02 -08:00
parent c9befda13a
commit f4952f040b
1 changed files with 27 additions and 1 deletions

View File

@ -145,14 +145,40 @@ AddHead(const char *displayName)
/* save the info for this head */
{
struct head *h = &Heads[NumHeads];
const char * tmp;
if (strlen(displayName) + 1 > sizeof(h->DisplayName)) {
Error(displayName, "displayName string length overflow");
return NULL;
}
strcpy(h->DisplayName, displayName);
h->Dpy = dpy;
h->Win = win;
h->Context = ctx;
h->Angle = 0.0;
strcpy(h->Version, (char *) glGetString(GL_VERSION));
tmp = (char *) glGetString(GL_VERSION);
if (strlen(tmp) + 1 > sizeof(h->Version)) {
Error(displayName, "GL_VERSION string length overflow");
return NULL;
}
strcpy(h->Version, tmp);
tmp = (char *) glGetString(GL_VENDOR);
if (strlen(tmp) + 1 > sizeof(h->Vendor)) {
Error(displayName, "GL_VENDOR string length overflow");
return NULL;
}
strcpy(h->Vendor, (char *) glGetString(GL_VENDOR));
tmp = (char *) glGetString(GL_RENDERER);
if (strlen(tmp) + 1 > sizeof(h->Renderer)) {
Error(displayName, "GL_RENDERER string length overflow");
return NULL;
}
strcpy(h->Renderer, (char *) glGetString(GL_RENDERER));
NumHeads++;
return &Heads[NumHeads-1];
}