Lucene search
K

nt4+sp4.filename.length.txt

🗓️ 17 Aug 1999 00:00:00Reported by Packet StormType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 23 Views

WinNT 4.0 SP4 has a filename length bug causing crashes during backups on affected folders.

Code
`Bug in WinNT 4.0 SP4  
  
Alvaro Gilabert ([email protected])  
Mon, 19 Apr 1999 15:15:36 +-200   
  
Hi,  
I supose it is a bug and I will explain why do I think so  
You can exceed the limit in the number of chars allowed in a filename.   
WinNT does allow it. You can move a folder to a deeper one exceeding it.  
But, when you try to backup that folder, the backup program (BackupExec   
and WinNT Backup) crashes and reboots the server. If you try to backup   
thru a network drive (using another server and mapping that folder), then   
it crashes and reboot the server also. Not the server that is making the   
backup but the server that has the wrong folder. That's a but because WinNT,   
supposing to be a fileserver, should take care of this. Recently, Mindspring   
released a report comparing WinNT vs. RedHat, sponsored by Microsoft. This   
point was missed in the comparison.  
  
Alvaro Gilabert  
ICQ UIN 2316344  
  
-----------------------------------------------------------------  
  
Re: Bug in WinNT 4.0 SP4  
  
David LeBlanc ([email protected])  
Tue, 20 Apr 1999 07:12:23 -0700   
  
At 03:15 PM 4/19/99 +-200, Alvaro Gilabert wrote:  
>Hi,  
>I supose it is a bug and I will explain why do I think so  
>You can exceed the limit in the number of chars allowed in a filename.  
WinNT does allow it. You can move a folder to a deeper one exceeding it.  
  
That's because the limit isn't where you think it is. From the  
documentation on CreateFile in the SDK:  
  
Windows NT: You can use paths longer than MAX_PATH characters by calling  
the wide (W) version of CreateFile and prepending “\\?\” to the path. The  
“\\?\” tells the function to turn off path parsing. This lets you use paths  
that are nearly 32,000 Unicode characters long. You must use  
fully-qualified paths with this technique. This also works with UNC names.  
The “\\?\” is ignored as part of the path. For example,  
“\\?\C:\myworld\private” is seen as “C:\myworld\private”, and  
“\\?\UNC\tom_1\hotstuff\coolapps” is seen as “\\tom_1\hotstuff\coolapps”.  
===============================  
  
So it seems that if you use the APIs properly, you can deal with extremely  
long paths. When you move things around, it is very likely that you are  
dealing with relative names, not absolute names.  
  
  
David LeBlanc  
[email protected]  
  
-----------------------------------------------------------------  
  
Re: Bug in WinNT 4.0 SP4  
  
Paul Gracy ([email protected])  
Mon, 26 Apr 1999 16:36:11 -0400   
  
I must disagree. Any action that a program takes that can crash a server is  
a bug. Period.  
  
The fact that properly using the SDK and following all the 'rules of  
microsoft' would prevent the crash is not an excuse. When the application  
tries to do something that would cause a crash, the OS should whack the  
offender's knuckles (see Dr. Watson), not curl up and die.  
  
I am tired of bad code being given excuses. If MS wants to run large,  
mission-critical / business-critical systems, they should fix their code.  
  
IMHO.  
  
=========================  
Paul H. Gracy  
[email protected]  
phone: 404 705 2873  
#include <std.disclaimer>  
=========================  
  
  
> -----Original Message-----  
> From: David LeBlanc [SMTP:[email protected]]  
> Sent: Tuesday, April 20, 1999 10:12 AM  
> To: [email protected]  
> Subject: Re: Bug in WinNT 4.0 SP4  
>  
> At 03:15 PM 4/19/99 +-200, Alvaro Gilabert wrote:  
> >Hi,  
> >I supose it is a bug and I will explain why do I think so  
> >You can exceed the limit in the number of chars allowed in a filename.  
> WinNT does allow it. You can move a folder to a deeper one exceeding it.  
>  
> That's because the limit isn't where you think it is. From the  
> documentation on CreateFile in the SDK:  
>  
> Windows NT: You can use paths longer than MAX_PATH characters by calling  
> the wide (W) version of CreateFile and prepending "\\?\" to the path. The  
> "\\?\" tells the function to turn off path parsing. This lets you use  
> paths  
> that are nearly 32,000 Unicode characters long. You must use  
> fully-qualified paths with this technique. This also works with UNC names.  
> The "\\?\" is ignored as part of the path. For example,  
> "\\?\C:\myworld\private" is seen as "C:\myworld\private", and  
> "\\?\UNC\tom_1\hotstuff\coolapps" is seen as "\\tom_1\hotstuff\coolapps".  
> ===============================  
>  
> So it seems that if you use the APIs properly, you can deal with extremely  
> long paths. When you move things around, it is very likely that you are  
> dealing with relative names, not absolute names.  
>  
>  
> David LeBlanc  
> [email protected]  
  
-----------------------------------------------------------------  
  
Re: Bug in WinNT 4.0 SP4  
  
David LeBlanc ([email protected])  
Tue, 27 Apr 1999 13:13:54 -0700   
  
At 04:36 PM 4/26/99 -0400, Paul Gracy wrote:  
>I must disagree. Any action that a program takes that can crash a server is  
>a bug. Period.  
  
I did not say it wasn't a bug. A bug, by definition, is something that  
causes an application (or even the whole OS) to crash or otherwise  
malfunction. So you are not disagreeing with anything I _said_. If you  
can make something go splat, then it is a bug. No arguments there.  
  
>The fact that properly using the SDK and following all the 'rules of  
>microsoft' would prevent the crash is not an excuse.  
  
No excuses were being made. Please do not manufacture excuses when they  
are not present.  
  
The only point was that Alvaro seemed to think that it was a problem that  
moving a folder could result in a total path which is > MAX_PATH. So far  
as I know, this isn't a problem, since if you are correctly handling the  
open, you can deal with extremely long paths. I thought that others might  
have the same sort of issue, and also thought that few people would know  
that bit of arcane trivia, so I was trying to point out how you might deal  
with this correctly. In general, using API calls correctly, and knowing  
various bits of trivia from the documentation is a Good Thing, and perhaps  
might save others from having their app go down.  
  
I was NOT saying that crashing is not a bug. That would be ridiculous.  
Neither the little backup app that comes with NT, or the Seagate product  
(which as far as I know, both sprung from Arcada, which Seagate bought) are  
favorites of mine. And before anyone asks, I really don't have something I  
can recommend.  
  
  
David LeBlanc  
[email protected]  
  
-----------------------------------------------------------------  
  
Date: Tue, 27 Apr 1999 21:03:52 +0200  
From: [email protected]  
To: [email protected]  
Subject: Antwort: Re: Bug in WinNT 4.0 SP4  
  
David LeBlanc wrote:  
>At 03:15 PM 4/19/99 +-200, Alvaro Gilabert wrote:  
>>Hi,  
>>I supose it is a bug and I will explain why do I think so  
>>You can exceed the limit in the number of chars allowed in a filename.  
>WinNT does allow it. You can move a folder to a deeper one exceeding it.  
>  
>That's because the limit isn't where you think it is. From the  
>documentation on CreateFile in the SDK:  
>  
>Windows NT: You can use paths longer than MAX_PATH characters by calling  
>the wide (W) version of CreateFile and prepending *\\?\* to the path. The  
>*\\?\* tells the function to turn off path parsing. This lets you use paths  
>that are nearly 32,000 Unicode characters long. You must use  
>fully-qualified paths with this technique. This also works with UNC names.  
>The *\\?\* is ignored as part of the path. For example,  
>*\\?\C:\myworld\private* is seen as *C:\myworld\private*, and  
>*\\?\UNC\tom_1\hotstuff\coolapps* is seen as *\\tom_1\hotstuff\coolapps*.  
>===============================  
>  
>So it seems that if you use the APIs properly, you can deal with extremely  
>long paths. When you move things around, it is very likely that you are  
>dealing with relative names, not absolute names.  
>  
>  
>David LeBlanc  
>[email protected]  
  
  
  
While following this tread I tried it out. View seconds later my NT server  
rebooted.  
  
Trying to create a 'reboot-server-path' from a client - impossible. Seems as if  
such path must be created from server console. But what about a carefully  
designed program installabel on the server, using the wide variant to create  
directories - creating paths exceeding MAX_PATH then setting a share to such a  
program?  
  
WinNT crashes within this scenario, every time a client wants to access this  
share.  
One simpler scenario: install a service. Exceed MAX_PATH. Start this service at  
system startup - watch the server rebooting.  
  
THIS IS A BUG - No excuse.  
  
---  
Thomas Schweikle <[email protected]>  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation