diff --git a/daemon/open.c b/daemon/open.c index c85312b..cf66668 100644 --- a/daemon/open.c +++ b/daemon/open.c @@ -47,7 +47,7 @@ static int create_open_state( InitializeSRWLock(&state->path.lock); if (FAILED(StringCchCopyA(state->path.path, NFS41_MAX_PATH_LEN, path))) { - status = ERROR_BUFFER_OVERFLOW; + status = ERROR_FILENAME_EXCED_RANGE; goto out_free; } state->path.len = (unsigned short)strlen(state->path.path); diff --git a/daemon/readdir.c b/daemon/readdir.c index 5bc06c0..b632d8b 100644 --- a/daemon/readdir.c +++ b/daemon/readdir.c @@ -216,7 +216,7 @@ static int format_abs_path( abs_path_copy(path_out, path); if (FAILED(StringCchPrintfA(path_out->path + path_out->len, NFS41_MAX_PATH_LEN - path_out->len, "\\%s", name->name))) { - status = ERROR_BUFFER_OVERFLOW; + status = ERROR_FILENAME_EXCED_RANGE; goto out; } path_out->len += name->len + 1; diff --git a/daemon/util.c b/daemon/util.c index ca955fe..a1cabed 100644 --- a/daemon/util.c +++ b/daemon/util.c @@ -382,7 +382,7 @@ int create_silly_rename( int status = NO_ERROR, i; if (path->len + extra_len >= NFS41_MAX_PATH_LEN) { - status = ERROR_BUFFER_OVERFLOW; + status = ERROR_FILENAME_EXCED_RANGE; goto out; } diff --git a/sys/nfs41_driver.c b/sys/nfs41_driver.c index 63e34ca..9051d5b 100644 --- a/sys/nfs41_driver.c +++ b/sys/nfs41_driver.c @@ -4036,6 +4036,7 @@ NTSTATUS map_querydir_errors( case ERROR_INVALID_PARAMETER: return STATUS_INVALID_PARAMETER; case ERROR_NO_MORE_FILES: return STATUS_NO_MORE_FILES; case ERROR_OUTOFMEMORY: return STATUS_INSUFFICIENT_RESOURCES; + case ERROR_FILENAME_EXCED_RANGE: return STATUS_NAME_TOO_LONG; default: print_error("failed to map windows error %d to NTSTATUS; " "defaulting to STATUS_INVALID_NETWORK_RESPONSE\n", status);