r148: Ensure we do not dereference a null pointer when we return the user
[Samba/gebeck_regimport.git] / source3 / aparser / spool.struct
blob1563ba5be076cb2c7e4a660ea92dcc8c70fe08e5
1 module spool
3 struct BUFFER5 {
4        uint32 buf_len;
5        uint16 buffer[buf_len];
6 };
8 struct BUFFERP {
9        uint32 buf_len;
10        BUFFER5 *buf;
13 struct UNISTR2 {
14        uint32 max_len;
15        uint32 undoc;
16        uint32 str_len;
17        uint16 buffer[str_len];
20 struct LPWSTR {
21        UNISTR2 *str;
24 struct VERSION {
25        uint32 version;
26        uint32 build;
27        uint32 osversion;
30 struct NTTIME {
31        uint32 low;
32        uint32 high;
35 struct DWORD {
36        uint32 x;
39 struct PRINTER_DRIVER_INFO_LEVEL_3 {
40         DWORD cversion;
41         LPWSTR name;
42         LPWSTR environment;
43         LPWSTR driverpath;
44         LPWSTR datafile;
45         LPWSTR configfile;
46         LPWSTR helpfile;
47         LPWSTR monitorname;
48         LPWSTR defaultdatatype;
49         BUFFERP dependentfiles;
52 struct PRINTER_DRIVER_INFO_LEVEL_6 {
53          DWORD   dummy1; 
54          DWORD   version; 
55          LPWSTR   name;       
56          LPWSTR environment;
57          LPWSTR driverpath;
58          LPWSTR datafile;
59          LPWSTR configfile;
60          LPWSTR helpfile;
61          LPWSTR monitorname;
62          LPWSTR defaultdatatype;
63          BUFFERP  dependentfiles;
64          BUFFERP  previousnames;
65          NTTIME   driverdate; 
66          VERSION driverversion; 
67          LPWSTR mfgname; 
68          LPWSTR oemurl; 
69          LPWSTR hardwareid; 
70          LPWSTR provider; 
74 struct PRINTER_DRIVER_INFO {
75        uint32 level;
76        union *info[level] {
77               case 3 PRINTER_DRIVER_INFO_LEVEL_3 info_3;
78               case 6 PRINTER_DRIVER_INFO_LEVEL_6 info_6;
79        }
83 struct R_GETPRINTERDATA {
84         uint32 type;
85         uint32 size;
86         uint8 *data;
87         uint32 needed;
88         uint32 status;