{"record":{"id":"49f0d09575c3fff5","repo":"peass-ng/PEASS-ng","slug":"drivename","errorCode":null,"errorMessage":"driveName","messagePattern":"driveName","errorType":"validation","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"winPEAS/winPEASexe/winPEAS/3rdParty/AlphaFS/Device/DriveInfo.cs","lineNumber":66,"sourceCode":"      [NonSerialized] private readonly string _name;\n\n\n      #region Constructors\n\n      /// <summary>Provides access to information on the specified drive.</summary>\n      /// <exception cref=\"ArgumentNullException\"/>\n      /// <exception cref=\"ArgumentException\"/>\n      /// <param name=\"driveName\">\n      ///   A valid drive path or drive letter.\n      ///   <para>This can be either uppercase or lowercase,</para>\n      ///   <para>'a' to 'z' or a network share in the format: \\\\server\\share</para>\n      /// </param>\n      [SuppressMessage(\"Microsoft.Design\", \"CA1062:Validate arguments of public methods\", MessageId = \"0\", Justification = \"Utils.IsNullOrWhiteSpace validates arguments.\")]\n      [SecurityCritical]\n      public DriveInfo(string driveName)\n      {\n         if (Utils.IsNullOrWhiteSpace(driveName))\n            throw new ArgumentNullException(\"driveName\");\n\n\n         driveName = driveName.Length == 1 ? driveName + Path.VolumeSeparatorChar : Path.GetPathRoot(driveName, false);\n\n         if (Utils.IsNullOrWhiteSpace(driveName))\n            throw new ArgumentException(Resources.InvalidDriveLetterArgument, \"driveName\");\n\n\n         _name = Path.AddTrailingDirectorySeparator(driveName, false);\n\n         // Initiate VolumeInfo() lazyload instance.\n         _volumeInfo = new VolumeInfo(_name, false, true);\n\n         // Initiate DiskSpaceInfo() lazyload instance.\n         _dsi = new DiskSpaceInfo(_name, null, false, true);\n      }\n\n      #endregion // Constructors","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/peass-ng/PEASS-ng/blob/53fb989abc2219826385683a6fee826bd6cd38d6/winPEAS/winPEASexe/winPEAS/3rdParty/AlphaFS/Device/DriveInfo.cs#L48-L84","documentation":"AlphaFS's DriveInfo constructor throws ArgumentNullException with param name 'driveName' when the drive name is null, empty, or whitespace. Like DiskSpaceInfo, it validates eagerly at construction time.","triggerScenarios":"new DriveInfo(null), new DriveInfo(\"\"), or new DriveInfo(\"\\t\") — usually a variable that was never assigned or an empty result from parsing.","commonSituations":"Iterating a list where an entry is empty; settings/registry value missing; WinForms TextBox left blank; splitting a string that yields an empty element.","solutions":["Check string.IsNullOrWhiteSpace(driveName) before constructing DriveInfo","Fix the source producing the empty string (missing config, failed lookup)","Filter empty entries out of collections before constructing DriveInfo objects"],"exampleFix":"// before\nforeach (var name in names) drives.Add(new DriveInfo(name));\n// after\nforeach (var name in names.Where(n => !string.IsNullOrWhiteSpace(n)))\n    drives.Add(new DriveInfo(name));","handlingStrategy":"type-guard","validationCode":"if (string.IsNullOrWhiteSpace(driveName))\n    throw new ArgumentException(\"driveName must be a non-empty drive name like C:\");\nvar di = new DriveInfo(driveName);","typeGuard":"static bool IsValidDriveName(string n) =>\n    !string.IsNullOrWhiteSpace(n) &&\n    System.Text.RegularExpressions.Regex.IsMatch(n.Trim(), \"^[A-Za-z]:?$\");","tryCatchPattern":"try { var di = new DriveInfo(driveName); }\ncatch (ArgumentNullException ex) { log.Error(\"driveName was null/empty\", ex); }","preventionTips":["Check IsNullOrWhiteSpace before construction","Skip empty entries when enumerating name lists","Validate UI text boxes before binding to DriveInfo"],"tags":["csharp","argument-null","alphafs","input-validation"],"backgroundTag":"null-argument","analyzedSha":"53fb989abc2219826385683a6fee826bd6cd38d6","analyzedAt":"2026-09-02T04:25:09.259Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T11:17:12.671Z"}