]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
filestore: cope with zero-length attribute values
authorSage Weil <sage@newdream.net>
Mon, 10 Nov 2008 21:40:59 +0000 (13:40 -0800)
committerSage Weil <sage@newdream.net>
Mon, 10 Nov 2008 21:40:59 +0000 (13:40 -0800)
src/os/FileStore.cc

index 9374c124fbd5d8bc2f1bd59a896442a8beeb6c99..fe6f2b53f3dd9303f57e1bc5e025d259da1171e1 100644 (file)
@@ -1612,7 +1612,12 @@ int FileStore::_setattrs(coll_t cid, pobject_t oid, map<string,bufferptr>& aset)
        ++p) {
     char n[100];
     get_attrname(p->first.c_str(), n);
-    r = do_setxattr(fn, n, p->second.c_str(), p->second.length());
+    const char *val;
+    if (p->second.length())
+      val = p->second.c_str();
+    else
+      val = "";
+    r = do_setxattr(fn, n, val, p->second.length());
     if (r < 0) {
       cerr << "error setxattr " << strerror(errno) << std::endl;
       break;