VirtualBox

Changeset 16973 in vbox


Ignore:
Timestamp:
Feb 20, 2009 2:31:41 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
43142
Message:

Additions/x11: only use valid resolutions from the X server configuration file

Location:
trunk/src/VBox/Additions/x11/xgraphics
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/x11/xgraphics/vboxvideo_68.c

    r16753 r16973  
    509509        int x = 0, y = 0;
    510510
    511         sscanf(pScrn->display->modes[i], "%dx%d", &x, &y);
    512         m                = xnfcalloc(sizeof(DisplayModeRec), 1);
    513         m->status        = MODE_OK;
    514         m->type          = M_T_BUILTIN;
    515         /* VBox does only support screen widths which are a multiple of 8 */
    516         m->HDisplay      = (x + 7) & ~7;
    517         m->VDisplay      = y;
    518         m->name          = strdup(pScrn->display->modes[i]);
    519         if (!m_prev)
    520             pScrn->modePool = m;
    521         else
    522             m_prev->next = m;
    523         m->prev = m_prev;
    524         m_prev  = m;
     511        if (sscanf(pScrn->display->modes[i], "%dx%d", &x, &y) == 2)
     512        {
     513            m                = xnfcalloc(sizeof(DisplayModeRec), 1);
     514            m->status        = MODE_OK;
     515            m->type          = M_T_BUILTIN;
     516            /* VBox only supports screen widths which are a multiple of 8 */
     517            m->HDisplay      = (x + 7) & ~7;
     518            m->VDisplay      = y;
     519            m->name          = strdup(pScrn->display->modes[i]);
     520            if (!m_prev)
     521                pScrn->modePool = m;
     522            else
     523                m_prev->next = m;
     524            m->prev = m_prev;
     525            m_prev  = m;
     526        }
    525527    }
    526528
  • trunk/src/VBox/Additions/x11/xgraphics/vboxvideo_70.c

    r16753 r16973  
    564564        int x = 0, y = 0;
    565565
    566         sscanf(pScrn->display->modes[i], "%dx%d", &x, &y);
    567         m                = xnfcalloc(sizeof(DisplayModeRec), 1);
    568         m->status        = MODE_OK;
    569         m->type          = M_T_BUILTIN;
    570         /* VBox does only support screen widths which are a multiple of 8 */
    571         m->HDisplay      = (x + 7) & ~7;
    572         m->HSyncStart    = m->HDisplay + 2;
    573         m->HSyncEnd      = m->HDisplay + 4;
    574         m->HTotal        = m->HDisplay + 6;
    575         m->VDisplay      = y;
    576         m->VSyncStart    = m->VDisplay + 2;
    577         m->VSyncEnd      = m->VDisplay + 4;
    578         m->VTotal        = m->VDisplay + 6;
    579         m->Clock         = m->HTotal * m->VTotal * 60 / 1000; /* kHz */
    580         m->name          = strdup(pScrn->display->modes[i]);
    581         if (!m_prev)
    582             pScrn->modePool = m;
    583         else
    584             m_prev->next = m;
    585         m->prev = m_prev;
    586         m_prev  = m;
     566        if (sscanf(pScrn->display->modes[i], "%dx%d", &x, &y) == 2)
     567        {
     568            m                = xnfcalloc(sizeof(DisplayModeRec), 1);
     569            m->status        = MODE_OK;
     570            m->type          = M_T_BUILTIN;
     571            /* VBox only supports screen widths which are a multiple of 8 */
     572            m->HDisplay      = (x + 7) & ~7;
     573            m->HSyncStart    = m->HDisplay + 2;
     574            m->HSyncEnd      = m->HDisplay + 4;
     575            m->HTotal        = m->HDisplay + 6;
     576            m->VDisplay      = y;
     577            m->VSyncStart    = m->VDisplay + 2;
     578            m->VSyncEnd      = m->VDisplay + 4;
     579            m->VTotal        = m->VDisplay + 6;
     580            m->Clock         = m->HTotal * m->VTotal * 60 / 1000; /* kHz */
     581            m->name          = strdup(pScrn->display->modes[i]);
     582            if (!m_prev)
     583                pScrn->modePool = m;
     584            else
     585                m_prev->next = m;
     586            m->prev = m_prev;
     587            m_prev  = m;
     588        }
    587589    }
    588590
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette