How to fix DeprecationWarning: Buffer()

11,319

Just like the warning said

DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

To avoid the depreciation warning. You need to find out the new Buffer() methods in your codes and replace them with a new one. Such as in the extend-node.js file(NodeTaskApp-master\node_modules\iconv-lite\lib), Line 13:

iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array);
Share:
11,319
Kat
Author by

Kat

Updated on June 04, 2022

Comments

  • Kat
    Kat almost 2 years

    I am building a web app from a sample I found, and get a warning in my output "DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead."

    In the package-lock.json file it refers to safer-buffer, which from my research is what is used to upgrade the buffer, however I am assuming this may be causing the issue. Here are the parts of the file which refer to buffer:

        "asn1": {
          "version": "0.2.4",
          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
          "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
          "requires": {
            "safer-buffer": "~2.1.0"
          }
    
       "bl": {
          "version": "2.2.0",
          "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
          "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
          "requires": {
            "readable-stream": "^2.3.5",
            "safe-buffer": "^5.1.1"
          }
    
      "buffer-equal-constant-time": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
          "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
        },
    
     "ecc-jsbn": {
          "version": "0.1.2",
          "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
          "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
          "requires": {
            "jsbn": "~0.1.0",
            "safer-buffer": "^2.1.0"
          }
        },
    
    
        "ecdsa-sig-formatter": {
          "version": "1.0.11",
          "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
          "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
          "requires": {
            "safe-buffer": "^5.0.1"
          }
        },
    
        "express": {
          "version": "4.16.4",
          "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
          "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
          "requires": {
            "accepts": "~1.3.5",
            "array-flatten": "1.1.1",
            "body-parser": "1.18.3",
            "content-disposition": "0.5.2",
            "content-type": "~1.0.4",
            "cookie": "0.3.1",
            "cookie-signature": "1.0.6",
            "debug": "2.6.9",
            "depd": "~1.1.2",
            "encodeurl": "~1.0.2",
            "escape-html": "~1.0.3",
            "etag": "~1.8.1",
            "finalhandler": "1.1.1",
            "fresh": "0.5.2",
            "merge-descriptors": "1.0.1",
            "methods": "~1.1.2",
            "on-finished": "~2.3.0",
            "parseurl": "~1.3.2",
            "path-to-regexp": "0.1.7",
            "proxy-addr": "~2.0.4",
            "qs": "6.5.2",
            "range-parser": "~1.2.0",
            "safe-buffer": "5.1.2",
            "send": "0.16.2",
            "serve-static": "1.13.2",
            "setprototypeof": "1.1.0",
            "statuses": "~1.4.0",
            "type-is": "~1.6.16",
            "utils-merge": "1.0.1",
            "vary": "~1.1.2"
          }
    
        "iconv-lite": {
          "version": "0.4.23",
          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
          "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
          "requires": {
            "safer-buffer": ">= 2.1.2 < 3"
          }
        },
    
        "jwa": {
          "version": "1.4.1",
          "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
          "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
          "requires": {
            "buffer-equal-constant-time": "1.0.1",
            "ecdsa-sig-formatter": "1.0.11",
            "safe-buffer": "^5.0.1"
          }
        },
    
    
        "jws": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
          "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
          "requires": {
            "jwa": "^1.4.1",
            "safe-buffer": "^5.0.1"
          }
        },
    
        "mysql": {
          "version": "2.16.0",
          "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.16.0.tgz",
          "integrity": "sha512-dPbN2LHonQp7D5ja5DJXNbCLe/HRdu+f3v61aguzNRQIrmZLOeRoymBYyeThrR6ug+FqzDL95Gc9maqZUJS+Gw==",
          "requires": {
            "bignumber.js": "4.1.0",
            "readable-stream": "2.3.6",
            "safe-buffer": "5.1.2",
            "sqlstring": "2.3.1"
          }
        },
    
        "readable-stream": {
          "version": "2.3.6",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
          "requires": {
            "core-util-is": "~1.0.0",
            "inherits": "~2.0.3",
            "isarray": "~1.0.0",
            "process-nextick-args": "~2.0.0",
            "safe-buffer": "~5.1.1",
            "string_decoder": "~1.1.1",
            "util-deprecate": "~1.0.1"
          }
        },
    
        "request": {
          "version": "2.88.0",
          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
          "requires": {
            "aws-sign2": "~0.7.0",
            "aws4": "^1.8.0",
            "caseless": "~0.12.0",
            "combined-stream": "~1.0.6",
            "extend": "~3.0.2",
            "forever-agent": "~0.6.1",
            "form-data": "~2.3.2",
            "har-validator": "~5.1.0",
            "http-signature": "~1.2.0",
            "is-typedarray": "~1.0.0",
            "isstream": "~0.1.2",
            "json-stringify-safe": "~5.0.1",
            "mime-types": "~2.1.19",
            "oauth-sign": "~0.9.0",
            "performance-now": "^2.1.0",
            "qs": "~6.5.2",
            "safe-buffer": "^5.1.2",
            "tough-cookie": "~2.4.3",
            "tunnel-agent": "^0.6.0",
            "uuid": "^3.3.2"
          }
        },
    
    
        "safe-buffer": {
          "version": "5.1.2",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
        },
    
    
        "safer-buffer": {
          "version": "2.1.2",
          "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
          "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
        },
    
        "sshpk": {
          "version": "1.16.1",
          "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
          "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
          "requires": {
            "asn1": "~0.2.3",
            "assert-plus": "^1.0.0",
            "bcrypt-pbkdf": "^1.0.0",
            "dashdash": "^1.12.0",
            "ecc-jsbn": "~0.1.1",
            "getpass": "^0.1.1",
            "jsbn": "~0.1.0",
            "safer-buffer": "^2.0.2",
            "tweetnacl": "~0.14.0"
          }
        },
    
        "string_decoder": {
          "version": "1.1.1",
          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
          "requires": {
            "safe-buffer": "~5.1.0"
          }
        },
    
       "tunnel-agent": {
          "version": "0.6.0",
          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
          "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
          "requires": {
            "safe-buffer": "^5.0.1"
          }
        },
    

    Anyone know what I need to do to "upgrade" these references so I am not getting the depreciation warning?

    • 1565986223
      1565986223 about 5 years
      you don't need to upgrade anything, where you've new Buffer(), change to Buffer.from() (or Buffer.alloc(), if you know your stuff)
    • Kat
      Kat about 5 years
      I don't have new Buffer() anywhere in my code. This is the only place it's referenced.
    • 1565986223
      1565986223 about 5 years
      could you post the stack trace?
    • Kat
      Kat about 5 years
      Is this what you're after? 2019-04-18T03:53:52 Welcome, you are now connected to log-streaming service. Application: (node:32004) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
    • 1565986223
      1565986223 about 5 years
      somewhere it should probably mention the origin file, etc
    • Kat
      Kat about 5 years
      I can't seem to find that, but I did find in the extend-node.js file, a heap of code along these lines. I'm guessing that's what I need to update... original.BufferWrite = Buffer.prototype.write; Buffer.prototype.write = function(string, offset, length, encoding) {
    • Tien Do
      Tien Do about 5 years
      I'm just curious about buffer packages here, safer-buffer and then safe-buffer are used. I was confused about their version until I found there was an 'r' in the other name :)
    • Tony Ju
      Tony Ju about 5 years
      @Kat If my answer is helpful for you, please make it as answer. Thank you.
  • Kat
    Kat about 5 years
    I can't see anywhere in the actual app where it uses buffer, just in these modules. Rather than update each line, can I just delete it? There seems to be a lot of modules this app has which it doesn't use. For the ease of my upskilling, maybe I can get rid of them all, and add them back as required?
  • Kat
    Kat about 5 years
    Dependencies in my package.json file list "bootstrap": "^3.4.1", "express": "^4.16.4", "mysql": "^2.16.0", "tedious": "^5.0.3", All the others are listed in package-lock.json. Can I just delete all the ones not used in package.json?
  • Tony Ju
    Tony Ju about 5 years
    @Kat Yes, you can. But the package-lock.json file is automatically generated. If you reinstall the module, it will come back again.
  • Tony Ju
    Tony Ju about 5 years
    @Kat The express dependency will install many modules, you need to confirm you will not use that module before deleting it.
  • Tony Ju
    Tony Ju about 5 years
    @Kat Do you have any other concerns regarding this question?
  • Kat
    Kat about 5 years
    from our discussions I am now developing locally with visual studio code, and syncing to the azure portal when I am happy with an update. I'm not having the many little bugs I was getting like this, so I think it is a much better setup. Thanks!
  • Graham Charles
    Graham Charles over 2 years
    OP has said there are no calls to Buffer() in their code. The Buffer() calls are in installed packages. This answer does not address that.
  • j bel
    j bel almost 2 years
    I have this very issue, @Kat what was the resolution? deleting every entry that had a buffer in it?