server: Fix return value of com_ff().
[paraslash.git] / blob.c
diff --git a/blob.c b/blob.c
index 2e0a476..ed68442 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -262,7 +262,7 @@ static int com_rmblob_callback(struct osl_table *table,
        if (pmd.num_matches == 0)
                ret = -E_NO_MATCH;
        else {
-               para_printf(&aca->pbout, "removed %d blob(s)\n",
+               para_printf(&aca->pbout, "removed %u blob(s)\n",
                        pmd.num_matches);
                ret = afs_event(BLOB_REMOVE, NULL, table);
        }
@@ -487,7 +487,8 @@ static int blob_get_name_by_id(struct osl_table *table, uint32_t id,
        struct osl_object obj = {.data = &id, .size = sizeof(id)};
        int ret;
 
-       *name = NULL;
+       if (name)
+               *name = NULL;
        if (!id)
                return 1;
        ret = osl(osl_get_row(table, BLOBCOL_ID, &obj, &row));
@@ -496,7 +497,10 @@ static int blob_get_name_by_id(struct osl_table *table, uint32_t id,
        ret = osl(osl_get_object(table, row, BLOBCOL_NAME, &obj));
        if (ret < 0)
                return ret;
-       *name = (char *)obj.data;
+       if (*(char *)obj.data == '\0')
+               return -E_DUMMY_ROW;
+       if (name)
+               *name = (char *)obj.data;
        return 1;
 }