Correct string handing issue (mismatched free vs alloc)
Change spa_strdup to normal kmem_alloc, to ensure correct free size
Tidied up earlier correction.
Replacing two other strdup calls with proper
Rejigging the spa_strdup() calls even more