summaryrefslogtreecommitdiff
path: root/progs/xdemos
diff options
context:
space:
mode:
Diffstat (limited to 'progs/xdemos')
-rw-r--r--progs/xdemos/glsync.c2
-rw-r--r--progs/xdemos/glxheads.c32
-rw-r--r--progs/xdemos/manywin.c32
-rw-r--r--progs/xdemos/sharedtex_mt.c4
4 files changed, 63 insertions, 7 deletions
diff --git a/progs/xdemos/glsync.c b/progs/xdemos/glsync.c
index da87306cf2..9d4b0f1ce2 100644
--- a/progs/xdemos/glsync.c
+++ b/progs/xdemos/glsync.c
@@ -89,7 +89,7 @@ static char optstr[] = "w:h:s:v";
enum sync_type {
none = 0,
sgi_video_sync,
- buffer_swap,
+ buffer_swap
};
static void usage(char *name)
diff --git a/progs/xdemos/glxheads.c b/progs/xdemos/glxheads.c
index b1a63d3d50..edae0a3ef7 100644
--- a/progs/xdemos/glxheads.c
+++ b/progs/xdemos/glxheads.c
@@ -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));
- strcpy(h->Vendor, (char *) glGetString(GL_VENDOR));
- strcpy(h->Renderer, (char *) glGetString(GL_RENDERER));
+
+ 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, tmp);
+
+ tmp = (char *) glGetString(GL_RENDERER);
+ if (strlen(tmp) + 1 > sizeof(h->Renderer)) {
+ Error(displayName, "GL_RENDERER string length overflow");
+ return NULL;
+ }
+ strcpy(h->Renderer, tmp);
+
NumHeads++;
return &Heads[NumHeads-1];
}
diff --git a/progs/xdemos/manywin.c b/progs/xdemos/manywin.c
index ee357f32a4..3b0810b2e5 100644
--- a/progs/xdemos/manywin.c
+++ b/progs/xdemos/manywin.c
@@ -177,14 +177,40 @@ AddHead(const char *displayName, const char *name)
/* save the info for this head */
{
struct head *h = &Heads[NumHeads];
+ const char * tmp;
+
+ if (strlen(name) + 1 > sizeof(h->DisplayName)) {
+ Error(displayName, "name string overflow");
+ return NULL;
+ }
strcpy(h->DisplayName, name);
+
h->Dpy = dpy;
h->Win = win;
h->Context = ctx;
h->Angle = 0.0;
- strcpy(h->Version, (char *) glGetString(GL_VERSION));
- strcpy(h->Vendor, (char *) glGetString(GL_VENDOR));
- strcpy(h->Renderer, (char *) glGetString(GL_RENDERER));
+
+ tmp = (char *) glGetString(GL_VERSION);
+ if (strlen(tmp) + 1 > sizeof(h->Version)) {
+ Error(displayName, "GL_VERSION string overflow");
+ return NULL;
+ }
+ strcpy(h->Version, tmp);
+
+ tmp = (char *) glGetString(GL_VENDOR);
+ if (strlen(tmp) + 1 > sizeof(h->Vendor)) {
+ Error(displayName, "GL_VENDOR string overflow");
+ return NULL;
+ }
+ strcpy(h->Vendor, tmp);
+
+ tmp = (char *) glGetString(GL_RENDERER);
+ if (strlen(tmp) + 1 > sizeof(h->Renderer)) {
+ Error(displayName, "GL_RENDERER string overflow");
+ return NULL;
+ }
+ strcpy(h->Renderer, tmp);
+
NumHeads++;
return &Heads[NumHeads-1];
}
diff --git a/progs/xdemos/sharedtex_mt.c b/progs/xdemos/sharedtex_mt.c
index f924448cc4..a90903adec 100644
--- a/progs/xdemos/sharedtex_mt.c
+++ b/progs/xdemos/sharedtex_mt.c
@@ -174,6 +174,10 @@ AddWindow(Display *dpy, const char *displayName, int xpos, int ypos,
{
static int id = 0;
struct window *h = &Windows[NumWindows];
+ if (strlen(displayName) + 1 > sizeof(h->DisplayName)) {
+ Error(displayName, "string overflow");
+ return NULL;
+ }
strcpy(h->DisplayName, displayName);
h->Dpy = dpy;
h->Win = win;