Changeset 52 for trunk/gui/util/prntobj/prntobj.c
- Timestamp:
- Aug 17, 2016, 9:31:36 AM (9 years ago)
- Author:
- Alex Taylor
- Message:
-
Add sanity checks to prevent some exception conditions.
- File:
-
- 1 edited
- trunk/gui/util/prntobj/prntobj.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/gui/util/prntobj/prntobj.c
r29 r52 10 10 #define INCL_SPLDOSPRINT 11 11 #define INCL_SPLERRORS 12 (追記) #define INCL_WINSHELLDATA (追記ここまで) 12 13 #include <os2.h> 13 14 #include <stdio.h> … … 17 18 18 19 #define MAX_DEVICE_NAME 9 20 (追記) (追記ここまで) 21 (追記) /* Various defines copied from CUPS.PDR... (追記ここまで) 22 (追記) */ (追記ここまで) 23 (追記) #define STR_LEN_PORTNAME 12 (追記ここまで) 24 (追記) #define STR_LEN_INIVAL 256 (追記ここまで) 25 (追記) #define STR_LEN_HOSTNAME 64 (追記ここまで) 26 (追記) #define STR_LEN_QUEUENAME 64 (追記ここまで) 27 (追記) (追記ここまで) 28 (追記) #define APPNAME_LEAD_STR "PM_" (追記ここまで) 29 (追記) #define APPNAME_PM_PORT_DRIVER "PM_PORT_DRIVER" (追記ここまで) 30 (追記) #define APPNAME_PM_SPOOLER_PORT "PM_SPOOLER_PORT" (追記ここまで) 31 (追記) (追記ここまで) 32 (追記) #define KEY_DESCRIPTION "DESCRIPTION" (追記ここまで) 33 (追記) #define KEY_INITIALIZATION "INITIALIZATION" (追記ここまで) 34 (追記) #define KEY_TERMINATION "TERMINATION" (追記ここまで) 35 (追記) #define KEY_PORTDRIVER "PORTDRIVER" (追記ここまで) 36 (追記) #define KEY_TIMEOUT "TIMEOUT" (追記ここまで) 19 37 20 38 … … 87 105 pszTitle = NULL; 88 106 CHAR szDeviceName[ 9 ] = {0}; 89 USHORT i, len; 107 CHAR szIniApp[ STR_LEN_PORTNAME ] = {0}; 108 CHAR szIniVal[ STR_LEN_INIVAL ] = {0}; 109 USHORT i; 90 110 SPLERR rc; 91 111 … … 104 124 pszModel = argv[ 3 ]; 105 125 pszTitle = argv[ 4 ]; 126 (追記) if ( strlen( pszTitle ) > 47 ) (追記ここまで) 127 (追記) pszTitle[ 47 ] = '0円'; (追記ここまで) 128 (追記) (追記ここまで) 129 (追記) // Make sure the specified port exists and has valid settings. (追記ここまで) 130 (追記) strcpy( szIniApp, APPNAME_LEAD_STR ); (追記ここまで) 131 (追記) strncat( szIniApp, pszPortName, STR_LEN_PORTNAME-1 ); (追記ここまで) 132 (追記) rc = PrfQueryProfileString( HINI_SYSTEMPROFILE, szIniApp, (追記ここまで) 133 (追記) KEY_PORTDRIVER, NULL, (追記ここまで) 134 (追記) (PVOID) szIniVal, STR_LEN_INIVAL ); (追記ここまで) 135 (追記) if ( rc < 2 ) { (追記ここまで) 136 (追記) printf("Error: %s does not appear to be a valid port.\n", pszPortName ); (追記ここまで) 137 (追記) return ( 1 ); (追記ここまで) 138 (追記) } (追記ここまで) 106 139 107 140 // Generate a suitable internal device name
Note:
See TracChangeset
for help on using the changeset viewer.