Skip to content

Commit ad5431b

Browse files
authored
Fix to prevent empty strings or null to be passed as paths for LocalFileStorageResource and LocalDirectoryStorageResourceContainer. (Azure#36015)
1 parent f6c7e52 commit ad5431b

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

sdk/storage/Azure.Storage.DataMovement/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### Breaking Changes
88

99
### Bugs Fixed
10+
- Fix to prevent empty strings or null to be passed as paths for `LocalFileStorageResource` and `LocalDirectoryStorageResourceContainer`.
1011

1112
### Other Changes
1213

sdk/storage/Azure.Storage.DataMovement/src/Shared/LocalDirectoryStorageResourceContainer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Runtime.CompilerServices;
99
using System.Text;
1010
using System.Threading;
11+
using Azure.Core;
1112
using Azure.Storage.DataMovement.Models;
1213

1314
namespace Azure.Storage.DataMovement
@@ -40,6 +41,7 @@ public class LocalDirectoryStorageResourceContainer : StorageResourceContainer
4041
/// <param name="path"></param>
4142
public LocalDirectoryStorageResourceContainer(string path)
4243
{
44+
Argument.AssertNotNullOrWhiteSpace(path, nameof(path));
4345
_path = path;
4446
}
4547

sdk/storage/Azure.Storage.DataMovement/src/Shared/LocalFileStorageResource.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public class LocalFileStorageResource : StorageResource
6464
/// <param name="path"></param>
6565
public LocalFileStorageResource(string path)
6666
{
67+
Argument.AssertNotNullOrWhiteSpace(path, nameof(path));
6768
_path = path;
6869
}
6970

sdk/storage/Azure.Storage.DataMovement/tests/LocalDirectoryStorageResourceTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Text;
99
using System.Threading;
1010
using System.Threading.Tasks;
11+
using Azure.Core;
1112
using Azure.Storage.DataMovement.Models;
1213
using Azure.Storage.Test.Shared;
1314
using NUnit.Framework;
@@ -42,6 +43,19 @@ public void Ctor_string()
4243
}
4344
}
4445

46+
[Test]
47+
public void Ctor_Error()
48+
{
49+
Assert.Catch<ArgumentException>( () =>
50+
new LocalDirectoryStorageResourceContainer(""));
51+
52+
Assert.Catch<ArgumentException>(() =>
53+
new LocalDirectoryStorageResourceContainer(" "));
54+
55+
Assert.Catch<ArgumentException>(() =>
56+
new LocalDirectoryStorageResourceContainer(default));
57+
}
58+
4559
[Test]
4660
public async Task GetStorageResourcesAsync()
4761
{

sdk/storage/Azure.Storage.DataMovement/tests/LocalFileStorageResourceTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,19 @@ public void Ctor_string()
8181
}
8282
}
8383

84+
[Test]
85+
public void Ctor_Error()
86+
{
87+
Assert.Catch<ArgumentException>(() =>
88+
new LocalFileStorageResource(""));
89+
90+
Assert.Catch<ArgumentException>(() =>
91+
new LocalFileStorageResource(" "));
92+
93+
Assert.Catch<ArgumentException>(() =>
94+
new LocalFileStorageResource(default));
95+
}
96+
8497
[Test]
8598
public async Task ReadStreamAsync()
8699
{

0 commit comments

Comments
 (0)