X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=fs%2Fnfsd%2Fvfs.c;h=0bc56f6d9276b96878edd55837354d6c5ea87d02;hb=5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47;hp=49d4b8725ca374e778b1cca112ffa4bc5ac791f1;hpb=fd217f4d70172c526478f2bc76859e909fdfa674;p=linux-2.6-omap-h63xx.git diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 49d4b8725ca..0bc56f6d927 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -410,6 +410,7 @@ out_nfserr: static ssize_t nfsd_getxattr(struct dentry *dentry, char *key, void **buf) { ssize_t buflen; + ssize_t ret; buflen = vfs_getxattr(dentry, key, NULL, 0); if (buflen <= 0) @@ -419,7 +420,10 @@ static ssize_t nfsd_getxattr(struct dentry *dentry, char *key, void **buf) if (!*buf) return -ENOMEM; - return vfs_getxattr(dentry, key, *buf, buflen); + ret = vfs_getxattr(dentry, key, *buf, buflen); + if (ret < 0) + kfree(*buf); + return ret; } #endif