MCPcopy Create free account
hub / github.com/cgsecurity/testdisk / entry2ext

Function entry2ext

src/file_doc.c:432–528  ·  view source on GitHub ↗

@ @ requires \valid_read(dir_entry); @ requires \initialized(dir_entry); @ assigns \nothing; @ ensures \result == \null || valid_read_string(\result); @*/

Source from the content-addressed store, hash-verified

430 @ ensures \result == \null || valid_read_string(\result);
431 @*/
432static const char *entry2ext(const struct OLE_DIR *dir_entry)
433{
434 switch(le16(dir_entry->namsiz))
435 {
436 case 10:
437 if(memcmp(dir_entry->name, ".\0Q\0D\0F\0\0\0",10)==0)
438 return extension_qdf_backup;
439 break;
440 case 12:
441 /* 3ds max */
442 if(memcmp(dir_entry->name, "S\0c\0e\0n\0e\0\0\0",12)==0)
443 return extension_max;
444 /* Licom AlphaCAM */
445 else if(memcmp(dir_entry->name,"L\0i\0c\0o\0m\0\0\0",12)==0)
446 return extension_amb;
447 break;
448 case 18:
449 /* Microsoft Works .wps */
450 if(memcmp(dir_entry->name,"C\0O\0N\0T\0E\0N\0T\0S\0\0\0",18)==0)
451 return extension_wps;
452 break;
453 case 20:
454 /* Page Maker */
455 if(memcmp(&dir_entry->name, "P\0a\0g\0e\0M\0a\0k\0e\0r\0\0\0", 20)==0)
456 return extension_p65;
457 break;
458 case 22:
459 /* SigmaPlot .jnb */
460 if(memcmp(dir_entry->name, "J\0N\0B\0V\0e\0r\0s\0i\0o\0n\0\0\0", 22)==0)
461 return extension_jnb;
462 /* Autodesk Inventor part ipt or iam file */
463 if(memcmp(dir_entry->name, "R\0S\0e\0S\0t\0o\0r\0a\0g\0e\0\0\0", 22)==0)
464 return extension_ipt;
465 break;
466 case 24:
467 /* HP Photosmart Photo Printing Album */
468 if(memcmp(dir_entry->name,"I\0m\0a\0g\0e\0s\0S\0t\0o\0r\0e\0\0\0",24)==0)
469 return extension_albm;
470 /* Lotus Approch */
471 if(memcmp(dir_entry->name,"A\0p\0p\0r\0o\0a\0c\0h\0D\0o\0c\0\0\0",24)==0)
472 return extension_apr;
473 break;
474 case 28:
475 /* Microsoft Works Spreadsheet or Chart */
476 if(memcmp(dir_entry->name,"W\0k\0s\0S\0S\0W\0o\0r\0k\0B\0o\0o\0k\0\0\0",28)==0)
477 return extension_xlr;
478 /* Visio */
479 else if(memcmp(dir_entry->name,"V\0i\0s\0i\0o\0D\0o\0c\0u\0m\0e\0n\0t\0\0\0",28)==0)
480 return extension_vsd;
481 /* SolidWorks */
482 else if(memcmp(&dir_entry->name,"s\0w\0X\0m\0l\0C\0o\0n\0t\0e\0n\0t\0s\0\0\0",28)==0)
483 return extension_sldprt;
484 break;
485 case 32:
486 if(memcmp(dir_entry->name, "m\0a\0n\0i\0f\0e\0s\0t\0.\0c\0a\0m\0x\0m\0l\0\0\0",32)==0)
487 return extension_camrec;
488 /* Revit */
489 if(memcmp(dir_entry->name, "R\0e\0v\0i\0t\0P\0r\0e\0v\0i\0e\0w\0004\0.\0000\0\0", 32)==0)

Callers 2

ole_get_file_extensionFunction · 0.85
file_rename_docFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected