summaryrefslogtreecommitdiff
path: root/sound/isa/gus/gus_mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/isa/gus/gus_mem.c')
-rw-r--r--sound/isa/gus/gus_mem.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/isa/gus/gus_mem.c b/sound/isa/gus/gus_mem.c
index ff9480f249fe..4c691dbf2721 100644
--- a/sound/isa/gus/gus_mem.c
+++ b/sound/isa/gus/gus_mem.c
@@ -199,6 +199,10 @@ struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owne
memcpy(&block.share_id, share_id, sizeof(block.share_id));
block.owner = owner;
block.name = kstrdup(name, GFP_KERNEL);
+ if (block.name == NULL) {
+ snd_gf1_mem_lock(alloc, 1);
+ return NULL;
+ }
nblock = snd_gf1_mem_xalloc(alloc, &block);
snd_gf1_mem_lock(alloc, 1);
return nblock;
@@ -237,13 +241,13 @@ int snd_gf1_mem_init(struct snd_gus_card * gus)
block.ptr = 0;
block.size = 1024;
block.name = kstrdup("InterWave LFOs", GFP_KERNEL);
- if (snd_gf1_mem_xalloc(alloc, &block) == NULL)
+ if (block.name == NULL || snd_gf1_mem_xalloc(alloc, &block) == NULL)
return -ENOMEM;
}
block.ptr = gus->gf1.default_voice_address;
block.size = 4;
block.name = kstrdup("Voice default (NULL's)", GFP_KERNEL);
- if (snd_gf1_mem_xalloc(alloc, &block) == NULL)
+ if (block.name == NULL || snd_gf1_mem_xalloc(alloc, &block) == NULL)
return -ENOMEM;
#ifdef CONFIG_SND_DEBUG
snd_card_ro_proc_new(gus->card, "gusmem", gus, snd_gf1_mem_info_read);