diff options
| author | Dave Jones <davej@codemonkey.org.uk> | 2003-05-12 01:06:20 +0100 |
|---|---|---|
| committer | Dave Jones <davej@tetrachloride.(none)> | 2003-05-12 01:06:20 +0100 |
| commit | 55e174df627f191a6798ccf7aa8bb08193ae7aba (patch) | |
| tree | ea1aab6382748934e249c3a621df978dc16ec788 /drivers/char | |
| parent | 6ecb1dbc5571282bf5319f76e3dd88ce599f5383 (diff) | |
[AGPGART] add checks to agp_copy_info() before dereferencing.
Spotted by Andi Kleen with AGPless IOMMU setup.
Diffstat (limited to 'drivers/char')
| -rw-r--r-- | drivers/char/agp/generic.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index 4b50767b26ba..3f5a3366cf37 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c @@ -270,13 +270,15 @@ EXPORT_SYMBOL_GPL(agp_num_entries); int agp_copy_info(agp_kern_info * info) { memset(info, 0, sizeof(agp_kern_info)); - info->chipset = agp_bridge->type; - - if (agp_bridge->type == NOT_SUPPORTED) + if (!agp_bridge || agp_bridge->type == NOT_SUPPORTED || + !agp_bridge->version) { + info->chipset = NOT_SUPPORTED; return -EIO; + } info->version.major = agp_bridge->version->major; info->version.minor = agp_bridge->version->minor; + info->chipset = agp_bridge->type; info->device = agp_bridge->dev; info->mode = agp_bridge->mode; info->aper_base = agp_bridge->gart_bus_addr; |
