fix examples to work with NULL buffer on getting extended attributes
This commit is contained in:
@@ -166,10 +166,15 @@ namespace Mono.Fuse.NETStandard.Samples {
|
|||||||
return 0;
|
return 0;
|
||||||
_value = hello_attrs [name];
|
_value = hello_attrs [name];
|
||||||
}
|
}
|
||||||
if (value.Length < _value.Length) {
|
|
||||||
return Errno.ERANGE;
|
if (value != null)
|
||||||
|
{
|
||||||
|
if (value.Length < _value.Length) {
|
||||||
|
return Errno.ERANGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array.Copy(_value, value, _value.Length);
|
||||||
}
|
}
|
||||||
Array.Copy (_value, value, _value.Length);
|
|
||||||
bytesWritten = _value.Length;
|
bytesWritten = _value.Length;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ namespace Mono.Fuse.NETStandard.Samples {
|
|||||||
|
|
||||||
protected override Errno OnGetPathExtendedAttribute (string path, string name, byte[] value, out int bytesWritten)
|
protected override Errno OnGetPathExtendedAttribute (string path, string name, byte[] value, out int bytesWritten)
|
||||||
{
|
{
|
||||||
int r = bytesWritten = (int) Syscall.lgetxattr (basedir+path, name, value, (ulong) value.Length);
|
int r = bytesWritten = (int) Syscall.lgetxattr (basedir+path, name, value, (ulong) (value?.Length ?? 0));
|
||||||
if (r == -1)
|
if (r == -1)
|
||||||
return Stdlib.GetLastError ();
|
return Stdlib.GetLastError ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ namespace Mono.Fuse.NETStandard.Samples {
|
|||||||
|
|
||||||
protected override Errno OnGetPathExtendedAttribute (string path, string name, byte[] value, out int bytesWritten)
|
protected override Errno OnGetPathExtendedAttribute (string path, string name, byte[] value, out int bytesWritten)
|
||||||
{
|
{
|
||||||
int r = bytesWritten = (int) Syscall.lgetxattr (basedir+path, name, value, (ulong) value.Length);
|
int r = bytesWritten = (int) Syscall.lgetxattr (basedir+path, name, value, (ulong) (value?.Length ?? 0));
|
||||||
if (r == -1)
|
if (r == -1)
|
||||||
return Stdlib.GetLastError ();
|
return Stdlib.GetLastError ();
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user