[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 4/4] LostIOv1: Korrekter Fehlercode beim Loeschen nichtexistenter Dateien
! LostIOv1: Wenn man eine Datei loescht, die es nicht gibt, muss am Ende ENOENT
rauskommen, nicht ein undefinierbares EPERM.
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/modules/lib/lostio/handler.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/modules/lib/lostio/handler.c b/src/modules/lib/lostio/handler.c
index 96791de..2f067d7 100644
--- a/src/modules/lib/lostio/handler.c
+++ b/src/modules/lib/lostio/handler.c
@@ -411,7 +411,7 @@ void rpc_io_link(pid_t pid, dword correlation_id, size_t data_size, void* data)
* RPC-Rueckgabewerte:
* 0: Erfolg
*
- * -1: Verzeichnis existiert nicht
+ * -1: Verzeichnis oder Datei existiert nicht
* -2: Fuer das Verzeichnis ist kein Unlink-Handler eingetragen
* -3: Das Format der erhaltenen RPC-Daten stimmt nicht
* -4: Beim eigentlichen Loeschen des Links ist ein Fehler aufgetreten
@@ -442,9 +442,14 @@ void rpc_io_unlink(pid_t pid, dword correlation_id, size_t data_size, void* data
return;
}
- // Keine Datei loeschen die geoffnet ist.
vfstree_node_t* node = vfstree_get_node_by_name(dir_filehandle->node,
unlink_request->name);
+ if (node == NULL) {
+ rpc_send_int_response(pid, correlation_id, -1);
+ return;
+ }
+
+ // Keine Datei loeschen die geoffnet ist.
lostio_filehandle_t* fh;
int i;
for (i = 0; (fh = list_get_element_at(filehandles, i)); i++) {
--
1.5.6.5