Showing error 1907

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: sound/pci/ac97/ac97_codec.c
Line in file: 2264
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

2234                        return -ENOMEM;
2235                }
2236        }
2237        if (ac97_is_modem(ac97)) {
2238                char comp[16];
2239                if (card->mixername[0] == '\0') {
2240                        strcpy(card->mixername, name);
2241                } else {
2242                        if (strlen(card->mixername) + 1 + strlen(name) + 1 <= sizeof(card->mixername)) {
2243                                strcat(card->mixername, ",");
2244                                strcat(card->mixername, name);
2245                        }
2246                }
2247                sprintf(comp, "AC97m:%08x", ac97->id);
2248                if ((err = snd_component_add(card, comp)) < 0) {
2249                        snd_ac97_free(ac97);
2250                        return err;
2251                }
2252                if (snd_ac97_modem_build(card, ac97) < 0) {
2253                        snd_ac97_free(ac97);
2254                        return -ENOMEM;
2255                }
2256        }
2257        if (ac97_is_audio(ac97))
2258                update_power_regs(ac97);
2259        snd_ac97_proc_init(ac97);
2260        if ((err = snd_device_new(card, SNDRV_DEV_CODEC, ac97, &ops)) < 0) {
2261                snd_ac97_free(ac97);
2262                return err;
2263        }
2264        *rac97 = ac97;
2265        return 0;
2266}
2267
2268EXPORT_SYMBOL(snd_ac97_mixer);
2269
2270/*
2271 * Power down the chip.
2272 *
2273 * MASTER and HEADPHONE registers are muted but the register cache values
2274 * are not changed, so that the values can be restored in snd_ac97_resume().
Show full sources