Timestamp:
Apr 9, 2010, 3:20:58 PM (16 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.5.x: update to 3.5.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/rpc_server/srv_spoolss_nt.c

    r414 r427  
    76977697                                goto done;
    76987698                        }
    7699                         *r->out.value_needed = strlen_m(regval_name(val));
     7699                        *r->out.value_needed = strlen_m;
    77007700                } else {
    77017701                        r->out.value_name = NULL;
     
    77427742        r2.in.type              = r->in.type;
    77437743        r2.in.data              = r->in.data;
    7744         r2.in._offered          = r->in._offered;
     7744        r2.in.offered;
    77457745
    77467746        return _spoolss_SetPrinterDataEx(p, &r2);
     
    85908590        if (Printer->printer_type == SPLHND_SERVER) {
    85918591
     8592
     8593
    85928594                result = getprinterdata_printer_server(p->mem_ctx,
    85938595                                                       r->in.value_name,
    85948596                                                       r->out.type,
    8595                                                        r->out.data);
    8596                 goto done;
     8597                                                       &data);
     8598                if (!W_ERROR_IS_OK(result)) {
     8599                        goto done;
     8600                }
     8601
     8602                result = push_spoolss_PrinterData(p->mem_ctx, &blob,
     8603                                                  *r->out.type, &data);
     8604                if (!W_ERROR_IS_OK(result)) {
     8605                        goto done;
     8606                }
     8607
     8608                *r->out.needed = blob.length;
     8609
     8610                if (r->in.offered >= *r->out.needed) {
     8611                        memcpy(r->out.data, blob.data, blob.length);
     8612                }
     8613
     8614                return SPOOLSS_BUFFER_OK(WERR_OK, WERR_MORE_DATA);
    85978615        }
    85988616
     
    86198637                *r->out.type = REG_DWORD;
    86208638                *r->out.needed = 4;
    8621                 r->out.data->value = printer->info_2->changeid;
    8622                 result = WERR_OK;
     8639                if (r->in.offered >= *r->out.needed) {
     8640                        SIVAL(r->out.data, 0, printer->info_2->changeid);
     8641                        result = WERR_OK;
     8642                }
    86238643                goto done;
    86248644        }
     
    86418661        *r->out.type = regval_type(val);
    86428662
    8643         blob = data_blob_const(regval_data_p(val), regval_size(val));
    8644 
    8645         result = pull_spoolss_PrinterData(p->mem_ctx, &blob,
    8646                                           r->out.data,
    8647                                           *r->out.type);
    8648 
     8663        if (r->in.offered >= *r->out.needed) {
     8664                memcpy(r->out.data, regval_data_p(val), regval_size(val));
     8665        }
    86498666 done:
    86508667        if (printer) {
     
    86568673        }
    86578674
    8658         *r->out.needed  = ndr_size_spoolss_PrinterData(r->out.data, *r->out.type, NULL, 0);
    86598675        *r->out.type    = SPOOLSS_BUFFER_OK(*r->out.type, REG_NONE);
    86608676        r->out.data     = SPOOLSS_BUFFER_OK(r->out.data, r->out.data);
     
    86758691        Printer_entry           *Printer = find_printer_index_by_hnd(p, r->in.handle);
    86768692        char                    *oid_string;
    8677         DATA_BLOB blob;
    86788693
    86798694        DEBUG(4,("_spoolss_SetPrinterDataEx\n"));
     
    87258740        }
    87268741
    8727         result = push_spoolss_PrinterData(p->mem_ctx, &blob,
    8728                                           r->in.type, &r->in.data);
    8729         if (!W_ERROR_IS_OK(result)) {
    8730                 goto done;
    8731         }
    8732 
    87338742        /*
    87348743         * When client side code sets a magic printer data key, detect it and save
     
    87388747        if ((r->in.type == REG_BINARY) && strequal(r->in.value_name, PHANTOM_DEVMODE_KEY)) {
    87398748                /* Set devmode and printer initialization info */
    8740                 result = save_driver_init(printer, 2, blob.data, blob.length);
     8749                result = save_driver_init(printer, 2, );
    87418750
    87428751                srv_spoolss_reset_printerdata(printer->info_2->drivername);
     
    87488757
    87498758        result = set_printer_dataex(printer, r->in.key_name, r->in.value_name,
    8750                                     r->in.type, blob.data, blob.length);
     8759                                    r->in.type, );
    87518760
    87528761        if (W_ERROR_IS_OK(result)) {
     
    89868995                                                   struct spoolss_PrinterEnumValues *r)
    89878996{
    8988         WERROR result;
    8989 
    8990         r->data = TALLOC_ZERO_P(mem_ctx, union spoolss_PrinterData);
     8997        r->data = TALLOC_ZERO_P(mem_ctx, DATA_BLOB);
    89918998        W_ERROR_HAVE_NO_MEMORY(r->data);
    89928999
     
    89989005
    89999006        if (r->data_length) {
    9000                 DATA_BLOB blob = data_blob_const(regval_data_p(v),
    9001                                                  regval_size(v));
    9002                 result = pull_spoolss_PrinterData(mem_ctx, &blob,
    9003                                                   r->data,
    9004                                                   r->type);
    9005                 if (!W_ERROR_IS_OK(result)) {
    9006                         return result;
    9007                 }
     9007                *r->data = data_blob_talloc(r->data, regval_data_p(v), regval_size(v));
    90089008        }
    90099009
Note: See TracChangeset for help on using the changeset viewer.